【问题标题】:How to declare an array of functions? [duplicate]如何声明函数数组? [复制]
【发布时间】:2021-08-17 08:42:30
【问题描述】:

假设我要声明一个函数数组,然后尝试以下操作

int (*funcs)(int, int)[10];

但事实证明,以下声明代表一个返回数组的函数,该数组无法编译。

如何正确声明函数数组?

【问题讨论】:

标签: c++ arrays function-pointers declaration


【解决方案1】:

严格来说,您不能声明函数数组。你可以声明一个函数指针数组。

看来你的意思

int (*funcs[10])(int, int);

另一种方法是引入 using 声明(或 typedef 声明),例如

using FP = int( * )( int, int );

FP funcs[10];

using FUNC = int ( int, int );

FUNC * funcs[10];

【讨论】:

  • 第三个选项好像有点奇怪。
  • @KarenBaghdasaryan 它有它自己的优势,因为你可以使用同名FUNC来声明一个函数和一个函数指针..
【解决方案2】:

应该是

int (*funcs[10])(int, int);

或向using(或typedef)寻求帮助。

using fp = int (*) (int, int);
fp funcs[10];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2021-11-03
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    相关资源
    最近更新 更多