youtomefc 发表于 2021-9-16 19:00:26

求解析函数申明是什么意思?

void (*dosomething(int a, void (*func)(int)))(int);
这个怎么理解,调用时怎么用?写这么复杂有什么好处?

人造人 发表于 2021-9-16 19:16:44

C语言复杂声明解析
https://blog.csdn.net/wangweixaut061/article/details/6549768

wp231957 发表于 2021-9-16 19:21:11

写这么复杂唯一的好处就是考人
比如等级考试啊,结业考试啊等等

人造人 发表于 2021-9-16 19:27:39

写一些库函数的时候,有时候需要使用回调函数
用到回调函数的时候,声明就比较复杂了

回调函数
https://www.zhihu.com/question/19801131

jhq999 发表于 2021-9-16 22:08:33

本帖最后由 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;


}


易道云 发表于 2021-9-22 02:18:17

函数声明就是告诉编译器,你预约了一个酒店房间,你等会要用。
页: [1]
查看完整版本: 求解析函数申明是什么意思?