我需要一个全局函数指针数组,并提出了这个:
static int (*myArray[5])();
如果我是对的,这是“返回int的函数的全局指针数组”。是对的吗?或者它是“返回静态int的函数的指针数组”。我只需要快速回答。
答案 0 :(得分:9)
应该尽可能简单,但不简单:
typedef int (*t_MyFunc)();
t_MyFunc g_MyFuncArray[5];
如果你愿意,g_MyFuncArray
可以是静态的(如果你想要一个全局变量,你不应该):
static t_MyFunc g_MyFuncArray[5];
在头文件中,您应该写:
extern t_MyFunc g_MyFuncArray[5];
但在这种情况下,请不要忘记在static
文件中省略.cpp
关键字。
答案 1 :(得分:3)
您不希望或不需要全局变量的static关键字。在使用static的.cpp文件中,将给出变量内部链接(您希望外部链接)。如果没有静态,myArray只对文件功能全局。如果您希望可见到您添加的整个程序中 {。{1}}到您的.h文件。
答案 2 :(得分:1)
static
是存储类说明符,而不是类型说明符或限定符,因此它指定变量的存储类,并且对其类型没有影响。没有“静态”类型或“返回静态函数”这样的东西 - 只有静态变量和静态函数/方法。
答案 3 :(得分:1)
以下链接://www.cdecl.org/很有帮助(事实上我已将其加入书签)。根据您的定义,它说:
declare myArray as static array 5 of pointer to function returning int
请注意,描述正确地将5指针的数组分类为静态,函数只返回一个int。