如何自动初始化指向函数的指针数组?

腾吉兹

我有一组功能:

int a1(int x, int, y)
{ do some stuff}

int a2(int x, int, y)
{ do some stuff}

//.........

int a100500(int x, int, y)
{ do some stuff}

是否有一种方法可以通过 FOR 循环自动初始化指向函数的指针数组,而不是显式键入类似的代码

int (*pfunc[100500])(int, int) = {a1, a2, ..., a1005000}

我的第一个想法是以以下方式使用 #define 指令:

#define z(n) a##n

// ..............

for (int i = 1; i< 100501;i++)
{ 
    pfunc[i] = z(i);
}

不幸的是,z(i) 变成了“ai”而不是“a1”、“a2”等。

我希望,也许一些 C-guru 可以帮助我提供一些建议。

艾维·洛尔

扩展@Giacomo Catenazzi 的评论,请考虑以下(不是很好的)python 脚本:

# generate_funcs.py
import sys
with open('funcs.inc', 'w') as f:
    f.write(',\n'.join('a{}'.format(i + 1) for i in range(int(sys.argv[1]))))

执行编号。您的函数 ( python generate_funcs.py 100500) 中,将生成一个名为的文件funcs.inc

a1,
a2,
...
a100500

然后您可以将其包含在您的 C 代码中:

int (*pfunc[])(int, int) = {
#include "funcs.inc"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用循环初始化指向函数的指针数组

如何初始化指向NULL的指针数组?

如何初始化指向结构数组的指针

初始化指向数组C ++的指针

初始化指向数组的指针

初始化指向对象数组的指针

自动初始化过程指针数组

如何声明和初始化指向char的指针数组的指针数组?

指向由数组初始化的矩阵的指针数组

使用构造函数初始化指向已定义结构的指针数组

在编译时使用constexpr初始化指向成员函数的指针数组

未初始化的指向函数的结构指针

检查指向函数的指针是否已初始化

指向类对象的空指针:函数内部的初始化

指向初始化整数数组的指针

在C中初始化指向数组的指针

如何初始化指向操作符重载的函数指针的std :: vector?

如何初始化保存指向结构体的指针的全局数组?

如何在rodata中初始化灵活数组并创建指向它的指针?

如何在一行代码中初始化指向整数数组的指针?

如何在C ++中初始化指向动态2D数组的指针

如何初始化指向 nullptr C++ 的动态指针数组

如何正确初始化函数指针

警告:从不兼容的指针类型初始化-如何初始化包含函数指针的结构体数组

初始化指向指针的指针向量

初始化指向 struct 的指针的指针

如何初始化指向extern变量的全局指针?

如何在类初始化器中声明指向成员函数的指针并通过这些指针进行调用?

如何初始化结构内部的指向NULL的指针数组,并且该结构位于其他结构的数组中