如何在C ++中打印变量的名称?

时间:2012-02-25 14:47:45

标签: c++

  

可能重复:
  Programmatic way to get variable name in C?

我在这里发布之前已经检查了一些博客。我试过以下片段......

int a=21;

int main()
{
   cout<<#a<<a<<endl;
   return 0;
}

我在ubuntu 10.04上使用g ++编译器。我收到以下错误:

sample.cpp:17: error: stray ‘#’ in program. 

请建议我如何打印变量名称。

2 个答案:

答案 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"