gpt4 book ai didi

c++ - __COUNTER__ 宏问题。不显示值

转载 作者:行者123 更新时间:2023-11-28 00:20:48 24 4
gpt4 key购买 nike

我正在尝试使用 __COUNTER__ 宏在我的代码中生成唯一的变量名。但是宏似乎不起作用。我可能以错误的方式使用它。请就我做错的地方向我提供指示或建议。

#define DUMB_MACRO() ht##__COUNTER__

应该给我 ht0,ht1....

我在主文件中调用它的方式是

DUMB_MACRO();

但是编译器说,如果我尝试使用 ht0 变量,它不会解析符号 ht__COUNTER__

我也尝试过使用 __CONCAT 宏,但我无法将变量传递给它。

例如:
__CONCAT(ht,1) 工作并给我 ht1 但是 __CONCAT(ht,i) 其中 i 是一个表示值 1 的变量不起作用,因为它的值在编译时未知。

最佳答案

你必须扩展宏:

#define MACRO3(s) ht##s
#define MACRO2(s) MACRO3(s)
#define MACRO MACRO2(__COUNTER__)

int MACRO ; //ht0
int MACRO ; //ht1

关于c++ - __COUNTER__ 宏问题。不显示值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27611812/

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