Adding a call back routine:
- It is very Simple to create call back reference to a given function , But care must be taken while defining the function body -As few compilers (old compilers though !!! ) may not give you a warning also if your function definition is different from the callback declaration and its invoking. Let us see an example which illustrates the problem.
#include<stdio.h> //pointer to the function int (*ptr_2_func)(int,int); int test_my_function (int a, int b,int c) //int test_my_function (int a, int b) - This should be the function definition { printf ("values of a is %d b is %d c is %d\n",a,b,c); // printf ("values of a is %d b is %d \n",a,b); return 0; } int main() { int ret = 0; ptr_2_func = test_my_function; ret = ptr_2_func(10,30); return 0; }" If we ignore the warning messages( in case your compiler is intelligent enough !!! ) , which most of the rookie programmers tend to - your program might end up crashing at some point of time if not immediate .
So its always better to make sure that your function pointer match the function prototype.