fork download
  1. #include <stdio.h>
  2.  
  3. typedef void FUNC(const char *str);
  4. typedef FUNC *FUNCPTR;
  5.  
  6. void func(const char *str)
  7. {
  8. printf("func(%s)\n", str);
  9. }
  10.  
  11. void foo(FUNC *fn) { fn("foo"); }
  12. void bar(FUNCPTR fn) { fn("bar"); }
  13. void foobar(FUNC fn) { fn("foobar"); } // OK
  14.  
  15. int main()
  16. {
  17. FUNC *fn1 = func;
  18. FUNCPTR fn2 = func;
  19. // FUNC fn3 = func; // エラー
  20.  
  21. foo(func);
  22. bar(func);
  23. foobar(func);
  24. fn1("fn1");
  25. fn2("fn2");
  26. // fn3("fn3");
  27.  
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 1788KB
stdin
Standard input is empty
stdout
func(foo)
func(bar)
func(foobar)
func(fn1)
func(fn2)