1

假设我有一段这样的代码:

x -= func();

有什么方法可以在func()不添加临时变量或检查的情况下知道结果x吗?此外,func()它在一个二进制库中,所以我没有它的代码。

4

1 回答 1

0

根据优化,这可能是不可能的。您可以检查eax寄存器,但这取决于调用约定以及函数是否内联。如果不使用,返回值可能会被完全丢弃。你最好的选择是使用临时的。事实上,使用临时的将适合调试目的(如您的情况),也可能更具可读性并且不应该影响性能。

于 2013-04-14T15:11:46.020 回答