fork download
  1. #include <stdio.h>
  2.  
  3. typedef void (*FunPtr)(int a, float b);
  4.  
  5. void foo(int a, float b) {
  6. printf("FOO : %d %f\n", a, b);
  7. }
  8.  
  9. void bar(int a, float b) {
  10. printf("BAR : %d %f\n", a, b);
  11. }
  12.  
  13. void assign(int n, FunPtr *ptr) {
  14. if (n == 0) {
  15. *ptr = foo;
  16. } else {
  17. *ptr = bar;
  18. }
  19. }
  20.  
  21. int main(void) {
  22. FunPtr f;
  23. assign(0, &f);
  24. f(10, 20.5);
  25. assign(1, &f);
  26. f(10, 20.5);
  27. return 0;
  28. }
Success #stdin #stdout 0s 2112KB
stdin
Standard input is empty
stdout
FOO : 10 20.500000
BAR : 10 20.500000