Code snippets:runonce func
From C
#include <stdio.h> typedef int f_foo(int); f_foo foo_runonce; f_foo foo_runonce_done; f_foo * foo = foo_runonce; int main(void) { int i; i = 0; i += foo(42); i += foo(13); i += foo(4); printf("Total: %d\n", i); return 0; } int foo_runonce(int x) { printf("Run-once done!\n"); foo = foo_runonce_done; return foo(x); } int foo_runonce_done(int x) { printf("%d\n", x); return x; }