diff options
author | Teddy <[email protected]> | 2014-05-07 11:55:51 +0800 |
---|---|---|
committer | Teddy <[email protected]> | 2014-05-07 11:55:51 +0800 |
commit | 30ecc9941b8da7a3c0108bc6117a1434e9caab94 (patch) | |
tree | 6a24b25086c63a4aa112fc6173b29c31793099d8 /compile_data/func_pointer.c | |
parent | bbb4de0693ba2b010cd2c44805d9a4ee4a2a8904 (diff) | |
parent | 52b29440f8f1310e0c074c8eb409e433c56bdd62 (diff) |
Merge /home/ymf/work/cibic into optimization
Diffstat (limited to 'compile_data/func_pointer.c')
-rw-r--r-- | compile_data/func_pointer.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/compile_data/func_pointer.c b/compile_data/func_pointer.c new file mode 100644 index 0000000..e7b6484 --- /dev/null +++ b/compile_data/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; +} |