function_pointers.c
changeset 24 9cdad6c45b47
child 27 81a574d60c15
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;
+}