diff --git a/function_pointers.c b/function_pointers.c new file mode 100644 --- /dev/null +++ b/function_pointers.c @@ -0,0 +1,40 @@ +/** + * test/demos/function_pointers.c + * Copyright (C) 2008 Markus Broeker + */ + +#include +#include + +typedef struct T { + int a; + int b; +} T; + +int plus(T t) +{ + return t.a+t.b; +} + +int minus(T t) +{ + return t.a-t.b; +} + +int func(T t, int (*ptrFunc)(T)) +{ + return ptrFunc(t); +} + +int main(int argc, char **argv) +{ + T t = { + .a = 20, + .b = 10 + }; + + printf("Result: %d\n", func(t, &plus)); + printf("Result: %d\n", func(t, &minus)); + + return EXIT_SUCCESS; +}