I am practicing function pointers. Here's what I am doing: passing a function pointer to another function. It all goes well except for the two warnings I get:
[list=1][*]'ConsumeFnPointer' : too many actual parameters[*]declared formal parameter list different from definition[/list=1]
I am curious as to why I get those warnings. Can we not pass variable arguments to the right of the function pointer argument? Has it got something to do with the calling sequence (__stdcall, ___pascal etc.)?
Here's the code:
Code:#include <stdio.h> /*float Add(float, float); float Subtract(float, float); float Multiply(float, float); float Divide(float, float); float (*ptr)(float, float); */ int DoSomething(int, int); int ConsumeFnPointer(int (*ptr1)(int, int)); int main() { //ptr=&Add; //printf("%f",ptr(3,9)); printf("%d", ConsumeFnPointer(&DoSomething,12,4)); } /*float Add(float a, float b) { return a+b;} float Subtract(float a, float b){ return a-b;} float Multiply(float a, float b){ return a*b;} float Divide(float a, float b){ return a/b;} */ int ConsumeFnPointer(int (*ptr1)(int a, int b), int a, int b) { return (*ptr1)(a,b); } int DoSomething(int a, int b) { return 1+a-b; }




Reply With Quote