问题:变量的地址,或者是指针指向的地址不能直接赋值给另一种变量。然而,我们常常需要用这个地址信息作为一些决策,比如总线地址数据的排列。
解决方法:把地址作为字符存放在另一个变量中。
1 c中可用sprintf
tlm_generic_payload * gp = new tlm_generic_payload();
char tmp1[32];
char tmp2[64];
sprintf(tmp1, “%p”, tlm_gp);
sprintf(tmp2, “%x”, tlm_gp);
cout<<“uint32_t:”<<tmp1<<“uint64_t:”<<tmp2<<endl
output:
uint32_t:0x3811ae80uint64_t:3811ae80
2 c++中可用stringstream
stringstream ss;
ss << tlm_gp<<endl;
cout<<"ss:"<<ss.str()<<endl;
输出:
ss:0x392f36f0