我最近正在阅读 Linux 内核。我发现在很多情况下他们使用结构“typedef xxx f(xxx)”,但我不明白它是如何工作的。(类似函数指针的东西?)
这是我的测试代码。
#include<stdio.h>
typedef int Myfunc(int);
typedef int (*point_to_myfunc)(int);
static Myfunc example;
static int example(int a){
printf("example a=%d\n", a);
return 1;
}
static void example2(Myfunc* f){
printf("example2\n");
f(2);
}
static void example3(int (*)(int));
static void example3(int (*point_to_Myfunc)(int)){
printf("example3\n");
point_to_Myfunc(3);
}
int main(){
point_to_myfunc f=&example;
example2(f);
example3(f);
return 0;
}
谁能给我一个简短的解释?谢谢~