读取C中的函数定义

时间:2011-02-11 12:55:00

标签: c function definition

我是一名Java开发者,由于某种原因,我现在正在学习C语言。问题是我在阅读函数定义时遇到了一些麻烦。你能不能给我一个提示,例如:

void (*signal(int sig, void(*func)(int)))(int)

谢谢你们!

3 个答案:

答案 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>