我使用指向double
变量的指针进行调试以修改其值。我希望每次更改指向的变量时都打印指针指向的变量名。这可以通过对每个变量进行编码,但是其中有几十个并且需要花费很多时间。我发现了这种方式here at cplusplus.com(第二次回复):
#define SHOW(a) std::cout << #a << ": " << (a) << std::endl
但它只打印指针的名称,而不是它指向的变量。
我使用键盘不断修改值。使用调试器是不可能的。
答案 0 :(得分:1)
你可以有一些全局字符串来获取当前的指针名称。 然后使用一些宏来为内存地址和名称两者进行分配。
示例:
#include <iostream>
std::string str;
#define pointTo(x,y) do{ str = #y; x=&y; }while(0)
int main()
{
int* x , hiThere ,helloWorld;
pointTo(x,hiThere);
std::cout<<str<<"\n";
pointTo(x,helloWorld);
std::cout<<str<<"\n";
}
工作示例:http://coliru.stacked-crooked.com/a/aaf2ba8ce791d591
但是虽然它有效但我强烈建议你放弃这个想法。请改用调试器。