我想在我的tracer中打印返回值,有两个问题
- 如何获取回邮地址?
- 返回位置在 ~Tracer() 之前或之后更新?
此处需要文本以便 Stackoverflow 格式化代码:
struct Tracer
{
int* _retval;
~Tracer()
{ printf("return value is %d", *_retval); }
};
int foo()
{
Tracer __tracter = { __Question_1_how_to_get_return_address_here__ };
if(cond) {
return 0;
} else {
return 99;
}
//Question-2:
// return postion is updated before OR after ~Tracer() called ???
}
最佳答案
我找到了问题1的一些提示,现在检查Vc代码
对于 gcc,__builtin_return_address http://gcc.gnu.org/onlinedocs/gcc/Return-Address.html
对于 Visual C++,_ReturnAddress
关于c++ - 如何获取函数内的函数返回地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13476839/