在C/C++程序中怎么打印一个变量的名称呢?利用#
,看代码:
#include <iostream>
#define VNAME(value) (#value)
int main(int argc, char *argv[]) {
float a = 0.2;
int b = 1;
std::string sss = "hello";
std::string strName = VNAME(sss);
std::cout << VNAME(a) << std::endl;
std::cout << VNAME(b) << std::endl;
std::cout << VNAME(sss) << std::endl;
std::cout << strName << std::endl;
return 0;
}
打印结果是:
a
b
sss
sss
完美解决。
分析原因:在宏VNAME中,我们使用了#
,这个#
出现在宏中,表示对后面的变量替换的时候,用双引号""
括起来,刚好满足我们的需求。