C/C++程序中获取变量的名称

在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中,我们使用了#,这个#出现在宏中,表示对后面的变量替换的时候,用双引号""括起来,刚好满足我们的需求。

猜你喜欢

转载自blog.csdn.net/lmb1612977696/article/details/79993916