什么是这段代码的含义?

时间:2012-02-20 12:48:50

标签: c

在头文件中,定义由

给出
static void (*foo[CONST]) (void);

它的含义是什么?

3 个答案:

答案 0 :(得分:7)

它的含义是一个带有CONST个函数指针元素的数组,其中包含签名void f(void);

这些内容最常用于回调,例如函数 atexit

答案 1 :(得分:1)

找到最左边的标识符并逐步解决,记住()之前[]*绑定*ap[] (*pa)[]是指针数组*fp()是一个指向数组的指针,(*pf)()是一个返回指针的函数, foo -- foo foo[CONST] -- is a CONST-element array *foo[CONST] -- of pointers (*foo[CONST])( ) -- to functions (*foo[CONST])(void) -- taking no parameters void (*foo[CONST])(void) -- and returning void static void (*foo[CONST])(void) -- and foo has static extent -- meaning it is not accessible by name -- outside of the current translation unit (file) 是一个指向函数的指针):

{{1}}

答案 2 :(得分:0)

阅读关于函数指针的章节。

How can I use an array of function pointers?