Bin*_*eee 0 c function-pointers
我正在考虑以下两者之间的区别:
void *signal(int, void (*)(int))(int)
Run Code Online (Sandbox Code Playgroud)
和
void (*signal(int, void (*)(int)))(int)
Run Code Online (Sandbox Code Playgroud)
我知道后者来自这里 - 示例#3:"终极"(当我试着大声说出来理解它时,这是一次热闹的学习经历):
signal是一个函数(int, void (*)(int))作为输入并返回一个指向另一个获取(int)和返回的函数的指针void.
对于前者我认为,因为最后一个(int)会有更高的优先级,*所以它应该是语法错误,但是从cdecl.org,结果是:
["]声明信号为函数(int,指向函数的函数(int)返回void)返回函数(int)返回指向void [."]的指针
所以我需要一张支票.