C函数前向声明省略参数

这一生的挚爱 提交于 2019-12-02 21:15:54

下面这几个函数定义,每次看到都会纠结一阵子,奇怪的是为什么没有参数?

1 #define SIG_ERR (void (*)())-1
2 #define SIG_DFL (void (*)())0
3 #define SIG_IGN (void (*)())1

函数signal的回调明明是下面这样的,void (*func)(int)),有个int类型的参数;

1 void (*signal(int signo, void (*func)(int)))(int);

其实这个问题以前也写过一篇文章<C函数前向声明省略参数>;原因是:C语言中前向声明是可以省略参数的,意味着可以有任意多个参数;

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!