How is it possible to give a function (B) a function (A) as a parameter?
So that I can use function A in the function B.
Like the Variable B in the following example:
foo(int B) { ... }
By using function pointers. Look at the qsort() standard library function, for instance.
Example:
#include <stdlib.h>
int op_add(int a, int b)
{
return a + b;
}
int operate(int a, int b, int (*op)(int, int))
{
return op(a, b);
}
int main(void)
{
printf("12 + 4 is %d\n", operate(12, 4, op_add));
return EXIT_SUCCESS;
}
Will print 12 + 4 is 16.
The operation is given as a pointer to a function, which is called from within the operate() function.
write function pointer type in another function's parameter list looks a little weird, especially when the pointer is complicated, so typedef is recommended.
EXAMPLE
#include <stdio.h>
typedef int func(int a, int b);
int add(int a, int b) { return a + b; }
int operate(int a, int b, func op)
{
return op(a, b);
}
int main()
{
printf("%d\n", operate(3, 4, add));
return 0;
}
function pointeris the thing you're looking for, but be warned: It's a bit messy and in my opinion not suitable for beginners.