这是一个语法问题。我遇到了这条线:
void (*old_sigint_handler)(int);
我不知道它在做什么。看起来像是没有变量名的三种类型的串联。我希望得到澄清!
void (*old_sigint_handler)(int);
这定义了old_sigint_handler
是一个指向函数的指针,该函数接受int
并返回void
,即没有值。周围的括号old_sigint_handler
这里还需要其他以下内容:
void *old_sigint_handler(int);
声明一个函数old_sigint_handler
这需要一个int
并返回一个指向void
类型。这是因为优先规则C
。括号与标识符紧密结合old_sigint_handler
比*
使其成为一个函数而不是指向函数的指针。阅读本文以在心里解析复杂的 C 声明 -顺时针/螺旋规则 http://c-faq.com/decl/spiral.anderson.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)