fork download
  1. #include <stdio.h>
  2.  
  3. typedef void*(*PtrAllgemein)();
  4.  
  5. /* statt int bla(int) : */
  6. void* bla(int i){printf("%d",i);return (void*)i;}
  7.  
  8. /* statt char *foo(char *) : */
  9. void* foo(char *s){puts(s);return 0;}
  10.  
  11. int main() {
  12. int i;
  13. enum {BLA,FOO};
  14. PtrAllgemein p[] = {bla,foo};
  15.  
  16. p[BLA](2);
  17. p[FOO]("hello");
  18.  
  19. /* für die Return-Typen der Funktionen sollte man dann aber nur Zeiger verwenden,
  20. evtl. würden noch integer Typen gehen, die dann aber (sowohl in der Funktion als auch beim Aufruf) gecastet werden müssen: */
  21.  
  22. i = (int)p[BLA](1234);
  23. printf("%d",i);
  24.  
  25. return 0;
  26. }
  27.  
Success #stdin #stdout 0s 2156KB
stdin
Standard input is empty
stdout
2hello
12341234