在C 中声明一系列功能指针

Declaring an array of function pointers in C++

本文关键字:功能 指针 一系列 声明      更新时间:2023-10-16

我正在使用.h文件和.cpp文件的项目。我正在编写一个我想利用一系列功能指针的函数,其中数组中的每个函数均基于与枚举有关的条件调用。我已经在.h文件中声明了5个函数和数组本身。我应该在哪个文件中设置等于适当函数(.h或.cpp)的每个值的每个值?

我预测,如果数组定义本身在.h文件中。

您应该定义.c文件中的数组(以及值的设置)。

和.h file neclare 数组作为外部,就像这样:

extern func_pointer_t array[];

,但全球范围内通常是一个坏主意,您应该考虑提供API以将功能指针从数组中获取。

func_pointer_t get(unsigned int i);

一般而言,变量分配发生在" .cpp"文件中。如果需要全球,则将某些内容放在.h文件中。

另外,请注意,数组中只能存在一个功能指针类型。换句话说,所有功能都必须具有相同的签名。

如果将数组更改为持有函数对象或指向函数对象的指针,则可以拥有许多函数对象的品种,这些函数对象来自基本函数对象。

另请参见std::vectorstd::map