gpt4 book ai didi

c - 对于在预处理器阶段展开的循环宏?

转载 作者:太空狗 更新时间:2023-10-29 17:06:39 25 4
gpt4 key购买 nike

我想使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com