我是一名Java开发者,由于某种原因,我现在正在学习C语言。问题是我在阅读函数定义时遇到了一些麻烦。你能不能给我一个提示,例如:
void (*signal(int sig, void(*func)(int)))(int)
谢谢你们!
答案 0 :(得分:4)
您应该学习right-to-left rule。这个页面包含很好的例子。
signal
是一个以参数为参数的函数:
int
并且不返回任何内容并返回指向int
并且不返回任何内容的函数的指针。
答案 1 :(得分:2)
func 是一个指向函数的指针,该函数接受一个int并返回void。
signal 是一个函数,它接受一个int和一个类似func的指针,并返回一个像func一样的指针。
那就是:你指定哪个信号处理程序( func )与信号( sig )相关联,并且该函数返回一个信号处理程序(前一个)可以存放在某个地方。
答案 2 :(得分:2)
行动中'cdecl'的一个例子。我认为它可用于Linux或源代码可以下载&建。
cdecl> explain char *(*fptab[])()
declare fptab as array of pointer to function returning pointer to char
cdecl>