summaryrefslogtreecommitdiff
path: root/reference/C/EXAMPLES/funcpt2.c
diff options
context:
space:
mode:
Diffstat (limited to 'reference/C/EXAMPLES/funcpt2.c')
-rw-r--r--reference/C/EXAMPLES/funcpt2.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/reference/C/EXAMPLES/funcpt2.c b/reference/C/EXAMPLES/funcpt2.c
new file mode 100644
index 0000000..6b04130
--- /dev/null
+++ b/reference/C/EXAMPLES/funcpt2.c
@@ -0,0 +1,40 @@
+
+/************************************************************************
+ *
+ * Purpose: 1. Define a pointer to a function with parameters.
+ * 2. Point at the function.
+ * 3. Execute the function passing parameters to it.
+ *
+ * Author: M.J. Leslie
+ *
+ * Date: 04-Jun-95
+ *
+ ************************************************************************/
+
+int (*fpointer)(int, int); /* Define a pointer to a function */
+
+int add(int, int); /* Define a few functions. */
+int sub(int, int);
+
+main()
+{
+ fpointer = add; /* Put the address of 'add' in 'fpointer' */
+ printf("%d \n", fpointer(4, 5)); /* Execute 'add' and print results */
+
+ fpointer = sub; /* Repeat for 'sub' */
+ printf("%d \n", fpointer(6, 2));
+}
+
+/************************************************************************/
+
+int add(int a, int b)
+{
+ return(a + b);
+}
+
+/************************************************************************/
+
+int sub(int a, int b)
+{
+ return(a - b);
+}