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 <stdio.h>
+#include <stdlib.h>
+
+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;
+}