ARV*_*ARV 0 c++ c-preprocessor
我想要一个 C++ 预处理器宏,它创建一个新的标识符,其中包含行号。这是为了将标识符用作不与任何其他变量名称冲突的一次性变量。例如,如果我写
VARNAME("Var")
Run Code Online (Sandbox Code Playgroud)
在文件的第 100 行,我希望预处理器生成变量名:
Var100
Run Code Online (Sandbox Code Playgroud)
请问我该怎么做?我知道我必须使用字符串化和__LINE__预定义的宏,但我无法弄清楚如何将它们组合在一起。
您可以使用以下内容:
#define CAT_(a, b) a ## b
#define CAT(a, b) CAT_(a, b)
#define VARNAME(Var) CAT(Var, __LINE__)
Run Code Online (Sandbox Code Playgroud)