c - n/=10 和 n=n/10 的区别

标签 c microcontroller

n/=10n=n/10 在执行速度方面有什么区别吗?

就像 n----n 一样,它们的执行速度也不同......

最佳答案

不,不是真的:

[C99: 6.5.16.2/3]: A compound assignment of the form E1 op= E2 differs from the simple assignment expression E1 = E1 op (E2) only in that the lvalue E1 is evaluated only once.

因此,只有当您的 n 是具有副作用(例如函数调用)的非平凡表达式时,这才会产生影响。

否则,我假设理论上会涉及一个中间临时变量,但如果这样一个临时变量在编译后的可执行文件中实际存在,你就得非常倒霉。您不会看到这两种方法之间有任何性能差异。

通过基准测试和比较生成的程序集来确认这一点。

关于c - n/=10 和 n=n/10 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15879388/

相关文章:

c - [USART-STM32F4xx] : How to wait until character arrives on Status Register (USART_SR)?

c - 不停止 while 循环未执行之前的语句

sprintf 导致字符数组溢出

c - Arduino 端口重定位(PORTD 到 PORTB)

microcontroller - 轮询与中断?

embedded - 在 SPI 问题中初始化 SD 卡

c - 使用STM8L在UART上接收数据

c++ - 分段故障打印文件特征

c - 我的数字转换器(以 2-16 为基数的十进制)以相反的顺序打印数字

c - 使指针中的值无效