__ReturnAddress 来自MSDN: _ReturnAddress内置函数提供了调用函数中将在控制返回给调用方后执行的指令的地址。 请注意,在某些平台上,由于尾部折叠,结果可能会产生误导 - 编译器可能使您的内部函数返回2个级别。这通常发生在像这样的代码中: int DoSomething() { return DoSomethingSpecial(); } 编译器可以生成代码,使得DoSomethingSpecial直接返回给调用者。 此外,返回地址不够可靠,无法做出安全决策,请参见这里。
_ReturnAddress
而不是__ReturnAddress
,这与答案中最初的指示不同。 - Benjamin Crawford Ctrl-Alt-Tut