如何生成动态生成的C ++定义调用

时间:2019-06-18 02:26:55

标签: c++

我在Cpp代码中使用整数值定义。我需要循环调用它们。我该怎么办?

// Defines:
#define A0 0
#define A1 1
#define A2 2
// ...
#define A50 50

// Now based on loop I need to call these defines
for (int i = 0; i <= 50; i++){
    function_name(A<i>, value);
}

1 个答案:

答案 0 :(得分:1)

#define宏仅在调用编译器之前由预处理器评估。因此,预处理器宏在运行时不存在,并且不能由使用仅在运行时知道其值的变量建立的名称来引用。

对于您要尝试的操作,必须使用一个数组,例如:

#define A0 0
#define A1 1
#define A2 2
...
#define A50 50

const int A[51] = {A0, A1, A2, ..., A50};

...

for (int i = 0; i <= 50; i++){
    function_name(A[i], value);
}