如何在C或C ++中打印宏名称,例如:
#define APINAME abc
#define PRINTAPI(x) printf("x")
Run Code Online (Sandbox Code Playgroud)
我想打印PRINTAPI(APINAME)而不是“ abc”
宏是预处理器,在编译代码之前,它们将被其关联的语句替换。因此,您没有机会在运行时使用宏名称。但是,您可以在编译时生成字符串名称:
#define APINAME abc
#define PRINTAPI(x) std::cout << #x << std::endl;
int main()
{
PRINTAPI(APINAME);
}
Run Code Online (Sandbox Code Playgroud)
输出量
APINAME
Run Code Online (Sandbox Code Playgroud)
在宏中,运算符#将输入参数设置为字符串文字(stringify)
| 归档时间: |
|
| 查看次数: |
10172 次 |
| 最近记录: |