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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章