gpt4 book ai didi

c - 宏中循环变量的唯一名称

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:27 25 4
gpt4 key购买 nike

这可能不是“最佳实践”,但我想添加我的自定义循环语句:

#define repeat(count) for(int _repeat_i = 0; _repeat_i < (count); _repeat_i++)

这样就可以正常工作了:

repeat(5) {
do_stuff();
}

但是我不能嵌套它:

repeat(5) {
do_big_stuff();

repeat(3) {
do_little_stuff();
}
}

...因为变量名会冲突。

有什么方法可以在宏中生成唯一的变量名?

最佳答案

一些编译器支持 __COUNTER__ 宏变量,可用于帮助避免变量阴影(您仍然需要添加足够唯一的前缀)。

示例见:http://rentzsch.tumblr.com/post/12960046342/nearly-hygienic-c-macros-via-counter

我们的想法是创建一个宏,它接受要使用的变量名后缀,然后用传入 __COUNTER__ 的第二个宏包装它以生成一个唯一的后缀。

关于c - 宏中循环变量的唯一名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27651496/

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