如何从 C++ 中的宏组成变量名?

How to compose a variable name from a macro in C++?

C++中如何从宏中组合变量名? 例如:

#define PREFIX p_
#define VAR_NAME #PREFIX#name

因此,VAR_NAME 必须公开为 p_name。可能吗?

你必须跳过预处理器的一些环节才能做到这一点:

#define CONCAT_(a, b) a##b
#define CONCAT(a, b) CONCAT_(a, b)

#define PREFIX p_
#define VAR_NAME CONCAT(PREFIX, name)

int VAR_NAME;

CONCAT_ 合并文本

CONCAT 在组合宏之前计算它们