这是一个语法问题。我碰到线:'void(* old_sigint_handler)(int)'是什么?
void (*old_sigint_handler)(int);
而我不知道它在做什么。这看起来像是没有变量名称的三种类型的连接。我希望澄清!
这是一个语法问题。我碰到线:'void(* old_sigint_handler)(int)'是什么?
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
中的优先规则。括号裹紧indentifier old_sigint_handler
比*
使其成为一个函数而不是指针的功能。阅读这个来精神分析复杂的C声明 - Clockwise/Spiral Rule。
你是低调者,我希望你能教我做错了什么,而不仅仅是低调。没有意义。 – ajay
是一个函数指针,一个函数签名void (int)
那是名为old_sigint_handler变量声明一个变量,可容纳一个函数指针,以接受一个int并没有返回值(空)的功能。
它的命名函数指针的声明old_sigint_handler采用单个int和没有返回。
这是一个函数指针声明old_sigint_handler
函数,该函数需要一个int
并返回void
。
利用cdecl知道它是什么样的声明完全一样。它是C -> English
declare old_sigint_handler as pointer to function (int) returning void
还,链接是有用 –
呀,伟大的链接。 – user2316667
函数指针,以接受一个'int'并返回'功能void' – user2485710
它的指针,需要一个'int'说法,也没有明确的返回功能。 [CDECL(http://cdecl.org/)是一个很好的资源,以澄清这种声明 – simonc
的是在main方法的中间虽然。 – user2316667