求解析函数申明是什么意思?
void (*dosomething(int a, void (*func)(int)))(int);这个怎么理解,调用时怎么用?写这么复杂有什么好处? C语言复杂声明解析
https://blog.csdn.net/wangweixaut061/article/details/6549768 写这么复杂唯一的好处就是考人
比如等级考试啊,结业考试啊等等 写一些库函数的时候,有时候需要使用回调函数
用到回调函数的时候,声明就比较复杂了
回调函数
https://www.zhihu.com/question/19801131 本帖最后由 jhq999 于 2021-9-16 23:11 编辑
void (*dosomething(int a, void (*func)(int)))(int);
void (*dosomething(int a, void (*func)(int)))(int)
{
return 0;
}
int main()
{
dosomething(12,NULL);//void (*func)(int))一个函数的指针
return 0;
}
void yyy(int a)
{
printf("func\n");
return;
}
int ttt(int a)
{
printf("ttt\n");
return a;
}
void (*dosomething(int a, void (*func)(int)))(int);
void (*dosomething(int a, void (*func)(int)))(int)
{
func(12);
return (void (*)(int))ttt;
}
int main()
{
void *p=dosomething(0x8888,yyy);//void (*func)(int))一个函数的指针
int i=((int (*)(int))p)(12);
printf("%d",i);
return 0;
}
函数声明就是告诉编译器,你预约了一个酒店房间,你等会要用。
页:
[1]