我是Java开发人员,出于某种原因,我正在研究C。问题是我在阅读函数定义时遇到了一些麻烦。你能给我一个这个例子的提示:阅读C中的函数定义
void (*signal(int sig, void(*func)(int)))(int)
谢谢你们!
我是Java开发人员,出于某种原因,我正在研究C。问题是我在阅读函数定义时遇到了一些麻烦。你能给我一个这个例子的提示:阅读C中的函数定义
void (*signal(int sig, void(*func)(int)))(int)
谢谢你们!
您应该了解right-to-left rule。这个页面包含很好的例子。
signal
被一个函数取作为参数:
int
和返回没什么并返回一个指向funcction服用int
和返回什么。
func是一个函数指针,它接受一个int并返回void。
信号是一个函数,它接受一个int和一个像func这样的指针,并返回一个类似于func的指针。
那就是:你指定哪个信号处理器(FUNC)关联到信号(SIG ),以及该函数返回一个信号处理器(前一),你可以在一些地方保存。
“cdecl”的实例。我认为它可用于Linux或源码可以下载&内置。
cdecl> explain char *(*fptab[])()
declare fptab as array of pointer to function returning pointer to char
cdecl>
在网上查找'cdecl'。 BTW信号是更复杂的例子之一。 :-) – 2011-02-11 13:07:18
非常感谢很多人!实际上并不认为一个函数可以以这种方式返回一个函数。 Thanksss! – 2011-02-11 13:34:19