【发布时间】:2013-04-14 15:01:04
【问题描述】:
假设我有一段这样的代码:
x -= func();
有什么方法可以在不添加临时变量或检查 x 的情况下知道 func() 的结果?另外,func() 在二进制库中,所以我没有它的代码。
【问题讨论】:
假设我有一段这样的代码:
x -= func();
有什么方法可以在不添加临时变量或检查 x 的情况下知道 func() 的结果?另外,func() 在二进制库中,所以我没有它的代码。
【问题讨论】:
根据优化,这可能是不可能的。您可以检查eax 寄存器,但这取决于调用约定以及函数是否内联。如果不使用,返回值可能会被完全丢弃。你最好的选择是使用临时的。事实上,使用临时对象将适合调试目的(如您的情况),也可能更具可读性并且不应该影响性能。
【讨论】: