我想使用 gcc 预处理器编写几乎相同的代码声明 500 次。假设出于演示目的,我想使用一个宏FOR_MACRO
:
#define FOR_MACRO(x) \
#for i in {1 ... x}: \
const int arr_len_##x[i] = {i};
并调用
FOR_MACRO(100)
将转换为:const int arr_len_1[1] = {1};
const int arr_len_2[2] = {2};
...
const int arr_len_100[100] = {100};
最佳答案
这不是一个好主意:
虽然原则上是可能的,但使用预处理器意味着您必须至少手动展开循环一次,最终会得到一些任意实现定义的循环深度限制,并且所有语句都将在一行中生成。
最好使用您选择的脚本语言来生成代码(可能在单独的可包含文件中)并将其与您的构建过程集成。
关于c - 在预处理器阶段展开的循环宏?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19117228/