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

标签 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);
}

最佳答案

#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);
}

关于c++ - 如何生成动态生成 C++ 定义调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56641002/

相关文章:

c++ - 调用非函数,也没有显示文本

C++线程本地计数器实现

c++ - 模板模板参数

c++ - 需要编写一个函数来检查数组 A1 是否包含在数组 A2 中;否则返回假

c++ - 为什么 emplace_back 很重要?

C++ vector 操作

c++ - 在 C 或 C++ 中使用 GNU 正则表达式函数

c++ - 带有列表的 std::generate_n 函数

c++ - 在 C 和 C++ 中从 jpeg 读取黑白像素作为数组

python - 传递 Python 元组代替 C++ 结构函数参数是否对性能有影响?