繁体   English   中英

我可以在C ++中有一个指向函数的静态指针数组吗?

[英]Can I have a static array of pointers to functions in C++?

我需要一个全局函数指针数组,并提出了这个:

static int (*myArray[5])();

如果我是对的,这是“返回int的函数的全局指针数组”。 那正确吗? 或者它是“返回静态int的函数的指针数组”。 我只需要快速回答。

应该尽可能简单,但不简单:

typedef int (*t_MyFunc)();

t_MyFunc g_MyFuncArray[5];

如果你愿意, g_MyFuncArray可以是静态的(但如果你想要一个全局变量, 你不应该这样做 ):

static t_MyFunc g_MyFuncArray[5];

在头文件中,您应该写:

extern t_MyFunc g_MyFuncArray[5];

但是在这种情况下,不要忘记在.cpp文件中省略static关键字。

您不希望或不需要全局变量的static关键字。 在使用static的.cpp文件中,将给出变量内部链接(您希望外部链接)。 如果没有静态,myArray在功能上仅对文件是全局的。 如果你希望它对整个程序可见 ,你可以添加extern int (*myArray[MY_FUNC_ARRAY_SIZE])(); 到您的.h文件。

static是存储类说明符,而不是类型说明符或限定符,因此它指定变量的存储类,并且对其类型没有影响。 没有“静态”类型或“返回静态函数”这样的东西 - 只有静态变量和静态函数/方法。

以下链接://www.cdecl.org/很有帮助(实际上我已将其加入书签)。 根据您的定义,它说:

declare myArray as static array 5 of pointer to function returning int

请注意,描述正确地将5指针的数组分类为静态,函数只返回一个int。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM