diff options
Diffstat (limited to 'testbed/func_pointer.c')
-rw-r--r-- | testbed/func_pointer.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/testbed/func_pointer.c b/testbed/func_pointer.c new file mode 100644 index 0000000..e7b6484 --- /dev/null +++ b/testbed/func_pointer.c @@ -0,0 +1,19 @@ +typedef void (*Func_t)(); +void f(Func_t func, int step) { + if (!step) return; + printf("i'm f\n"); + func(func, step - 1); +} +void g(void (*func)(), int step) { + if (!step) return; + printf("i'm g\n"); + func(func, step - 1); +} +int main() { + void (*func)(void (*ifunc)(), int step); + int x = 1; + if (x) func = f; + else func = g; + func(func, 5); + return 0; +} |