c语言中_nop_()函数可以用语句1==1代替吗?

c语言中_nop_()函数可以用语句1==1代替吗?

不能。

不考虑编译器优化,1==1是一个实际存在的动作,是要去填充流水线交给运算单元比较的。

考虑编译器优化。。。编译器会认为这是一句废话,直接给你搞掉。

nop对应的是一个实际存在的汇编码nop,而既然它已经是单个汇编码,从理论上来说就不存在另一个汇编码能够替代它(那所以CPU架构师为什么要做两个一模一样的汇编码)?

实际上就算你写nop,编译器开高优化有时候也会给你搞掉,你不写nop,编译器也会给你搞出来,毕竟绝大多数情况下,编译器比你更懂CPU。

标签:nop,语句,函数,C(编程语言),编译原理,51 单片机,keil,单片机开发板