我从 http://en.wikipedia.org/wiki/NOP 中红色定义但我仍然需要一个更简单的定义。
我偶然发现了一段代码,但我不知道它到底做了什么:
switch (Something)
{
case this_one:
asm ("nop");
break;
case other_one:
asm ("nop");
break;
default:
asm ("nop");
break;
}
最佳答案
nop
是一条什么都不做的汇编指令——几乎什么都不做,但仍然执行一条机器指令,这意味着(可能)有非常小的时间流逝(这在某些实时应用程序中可能具有有限的值(value)。
在这种情况下,语句 asm("nop");
对程序没有语义上的影响。我认为它可能存在的唯一原因是“强制”编译器不折叠代码路径,使 switch 语句的机器结构在您查看目标代码或反汇编机器代码或查看它时可见一个调试器。
关于c - asm ("nop");作品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24359632/