Advertisement
d1cor

function_pointer.c

Apr 4th, 2018
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.27 KB | None | 0 0
  1. /*******************************************
  2. * Author     : Diego Cordoba / @d1cor      *
  3. * Purpose    : juncotic.com                *
  4. * Contact    : @d1cor / @juncotic          *
  5. *******************************************/
  6.  
  7. #include<stdio.h>
  8. #include<stdlib.h>
  9. #include<sys/types.h>
  10. #include<sys/stat.h>
  11. #include<unistd.h>
  12. #include<dirent.h>
  13. #include<fcntl.h>
  14. #include<errno.h>
  15.  
  16. int suma(int n1,int n2);
  17. int resta(int n1,int n2);
  18. int mult(int n1,int n2);
  19.  
  20. int main(int argc, char** argv) {
  21.  
  22. //calculadora que suma, multiplica y resta
  23.  
  24.     int num1,num2,result;
  25.     char op;
  26.  
  27.     //definimos un puntero para funciones con formato
  28.     //  int nombre_func(int,int)
  29.     int (*operacion)(int,int);
  30.  
  31.  
  32.     printf("ingrese una operacion: (ej, 2+3)  + - *\n");
  33.     scanf("%d%c%d",&num1,&op,&num2);
  34.  
  35.     switch(op){
  36.     case '+':
  37.         operacion=suma; //a op le cargamos la dir de mem de la funcion suma
  38.         break;
  39.     case '-':
  40.         operacion=resta;
  41.         break;
  42.     case '*':
  43.         operacion=mult;
  44.         break;
  45.     default:
  46.         printf("Error de carga de datos\n");
  47.         exit(2);
  48.     }
  49.  
  50.     result=(*operacion)(num1,num2);
  51.  
  52.     printf("El resultado es: %d\n",result);
  53.  
  54.     return 0;
  55. }
  56.  
  57. int suma(int n1,int n2){
  58.     return n1+n2;
  59. }
  60. int resta(int n1,int n2){
  61.     return n1-n2;
  62. }
  63. int mult(int n1,int n2){
  64.     return n1*n2;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement