fork download
  1. #include <stdio.h>
  2.  
  3. typedef int f_foo(int);
  4.  
  5. f_foo foo_runonce;
  6. f_foo foo_runonce_done;
  7. f_foo * foo = foo_runonce;
  8.  
  9. int main(void) {
  10. int i;
  11.  
  12. i = 0;
  13. i += foo(42);
  14. i += foo(13);
  15. i += foo(4);
  16. printf("Total: %d\n", i);
  17. return 0;
  18. }
  19.  
  20. int foo_runonce(int x) {
  21. printf("Run-once done!\n");
  22. foo = foo_runonce_done;
  23. return foo(x);
  24. }
  25.  
  26. int foo_runonce_done(int x) {
  27. printf("%d\n", x);
  28. return x;
  29. }
Success #stdin #stdout 0.02s 1676KB
stdin
Standard input is empty
stdout
Run-once done!
42
13
4
Total: 59