#include <stdio.h>
int a = 0;
void (*fancp)();
void test(void(*fanc)())
{
a = 1;
fancp = fanc;//注册
}
void hello()
{
printf("hello\n");
}
int main(int argc, char** argv)
{
test(hello);//该行代码在其他c文件中实现才有意义
printf("%x\n", fancp);//打印fancp的地址,在使用中可以判断fancp的值来确定是否已经注册,fancp==0为没有注册
(*fancp)();
return 0;
int a = 0;
void (*fancp)();
void test(void(*fanc)())
{
a = 1;
fancp = fanc;//注册
}
void hello()
{
printf("hello\n");
}
int main(int argc, char** argv)
{
test(hello);//该行代码在其他c文件中实现才有意义
printf("%x\n", fancp);//打印fancp的地址,在使用中可以判断fancp的值来确定是否已经注册,fancp==0为没有注册
(*fancp)();
return 0;
}
这种实现机制和java 的接口(常见的setListener())是很像的。