fork download
  1. #include <stdio.h>
  2.  
  3. int func( int (*x)(int,int) ) { return x(20, 5); }
  4. int func2( int x(int,int) ) { return x(20, 5); }
  5. int func3( int(fn)() ) { return fn(); }
  6. int func4( int(*fn)() ) { return fn(); }
  7. typedef int cellulae_func(int, int);
  8. int tabula(cellulae_func *cell, int lat, int alt) { return cell(lat, alt); }
  9. int soma(int x, int y) { return x + y; }
  10. int sub(int x, int y) { return x - y; }
  11. int teste() { return 42; }
  12. int main(void) {
  13. printf("%d\n", tabula(soma, 20, 5));
  14. printf("%d\n", tabula(sub, 20, 5));
  15. printf("%d\n", func(soma));
  16. printf("%d\n", func2(soma));
  17. printf("%d\n", func3(teste));
  18. printf("%d\n", func4(teste));
  19. printf("%d\n", func4(soma)); //funciona, mas está errado
  20. int (*funcs[2])(int x, int y);
  21. funcs[0] = soma;
  22. funcs[1] = sub;
  23. printf("%d\n", func(funcs[0]));
  24. }
  25.  
  26. //https://pt.stackoverflow.com/q/322422/101
Success #stdin #stdout 0s 4168KB
stdin
Standard input is empty
stdout
25
15
25
25
42
42
-749435031
25