From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/EXAMPLES/funcpt3.c | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 reference/C/EXAMPLES/funcpt3.c (limited to 'reference/C/EXAMPLES/funcpt3.c') diff --git a/reference/C/EXAMPLES/funcpt3.c b/reference/C/EXAMPLES/funcpt3.c new file mode 100644 index 0000000..78a665c --- /dev/null +++ b/reference/C/EXAMPLES/funcpt3.c @@ -0,0 +1,54 @@ + +/************************************************************************ + * + * Purpose: 1. Define a pointer to a function with parameters. + * 2. Point at the function. + * 3. Execute the function passing char and string parameters to it. + * + * Author: M.J. Leslie + * + * Date: 04-Jun-95 + * + ************************************************************************/ + +char * (*fpointer)(char *, char); /* Define a pointer to a function */ + +char * prefix(char *, char); /* Define a few functions. */ +char * suffix(char *, char); + +main() +{ + fpointer = prefix; /* Put the address of 'add' in 'fpointer' */ + printf("%s ", fpointer("artin", 'M')); + + fpointer = suffix; /* Repeat for 'suffix' */ + printf("%s \n", fpointer("lesli", 'e')); +} + +/************************************************************************/ + +char * prefix(char *str, char c) +{ + char result[100]; + + result[0] = c; + strcpy(result+1, str); + + return(result); +} + +/************************************************************************/ + +char * suffix(char *str, char c) +{ + char result[100]; + int eol; + + strcpy(result, str); + + eol=strlen(result); + result[eol] = c; + result[eol+1] = '\0'; + + return(result); +} -- cgit v1.2.3-54-g00ecf