我在这里发布之前已经检查了一些博客。我试过以下片段......
int a=21;
int main()
{
cout<<#a<<a<<endl;
return 0;
}
我在ubuntu 10.04上使用g ++编译器。我收到以下错误:
sample.cpp:17: error: stray ‘#’ in program.
请建议我如何打印变量名称。
答案 0 :(得分:14)
#
字符串化宏项仅适用于宏。
你可以这样做:
#include <iostream>
#define VNAME(x) #x
#define VDUMP(x) std::cout << #x << " " << x << std::endl
int main()
{
int i = 0;
std::cout << VNAME(i) << " " << i << std::endl;
VDUMP(i);
return 0;
}
答案 1 :(得分:0)
如果您正在编写宏,则#
适用。
如果您的cout
行是一个宏,它会按您期望的方式工作。
如果您不在宏中,只需输入"a"
。