Typedef Function Type
From C
There's no need to typedef pointers to function types, typedefing a function type makes things clearer.
'function' is a pointer to a function type:
typedef int (*function)(int a, int b); function pointer;
The alternative of a non-pointer function type is:
typedef int function(int a, int b); function *pointer;
Code Sample
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
typedef int function(int a, int b);
int call_function(function *p, int a, int b) {
return p(a, b);
}
int main(void) {
int sum;
sum = call_function(&add, 10, 5);
printf("add: %d\n", sum);
sum = call_function(&sub, 10, 5);
printf("sub: %d\n", sum);
return 0;
}
.
