Gautam Naresh Ответов: 1

C++ получить имя переменной


#include <iostream>

using namespace std;
#define getName(VariableName) # VariableName
int print(int num)
{
    std::cout<<getName(num)<<": {"<<num<<"}"<<std::endl; 
}
int main()
{
  int  mynum;
    std::cout<<"enter number->"<<std::endl;
    std::cin>>mynum;
    print(mynum);
   
}


Что я уже пробовал:

у меня есть выход:
enter number->
5
num: {5}
но мне нужно ... :
mynum: {5}

1 Ответов

Рейтинг:
7

Rick York

Вы вызываете макрос следующим образом : getName(num), поэтому он не может отображать mynum. У меня была похожая проблема, и я сделал что-то вроде этого :

#define printValue( val )   print( val, # val )

int print( int num, const char * name )
{
    std::cout << name << ": {" << num << "}" << std::endl; 
}

int main()
{
    int mynum;
    std::cout << "enter number->" << std::endl;
    std::cin >> mynum;
    printValue( mynum );
}


CPallini

5.