n/=10
和 n=n/10
在执行速度方面有什么区别吗?
就像 n--
和 --n
一样,它们的执行速度也不同......
最佳答案
不,不是真的:
[C99: 6.5.16.2/3]:
A compound assignment of the formE1 op= E2
differs from the simple assignment expressionE1 = E1 op (E2)
only in that the lvalueE1
is evaluated only once.
因此,只有当您的 n
是具有副作用(例如函数调用)的非平凡表达式时,这才会产生影响。
否则,我假设理论上会涉及一个中间临时变量,但如果这样一个临时变量在编译后的可执行文件中实际存在,你就得非常倒霉。您不会看到这两种方法之间有任何性能差异。
通过基准测试和比较生成的程序集来确认这一点。
关于c - n/=10 和 n=n/10 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15879388/