有一种在C/C++中生成nop操作码的可移植方法吗?

Nig*_*een 1 c c++

在汇编中,有nop操作码.假设我想单独使用C/C++语法在生成的程序集中使用该操作码.有没有可行的方法来完成它?

看完这个,我试图编译(void)0;在最新的MSVC 15.5.2在生成NOP指令,有或没有启用优化没有成功.

由于内联汇编不是 ISO C标准的一部分,并且它在C++中的支持是有条件的,我想避免这种情况.

在Microsoft Visual Studio中,我知道我可以使用此处<intrin.h>记录的标头中定义的__nop()函数在生成的程序集中成功创建单个函数.nop

Ded*_*tor 5

不,没有便携的方式.

虽然编译器通常为或多或少的异常情况提供了相当多的内在函数,并且通常也有一些内联编写汇编代码的方法,但这些都不是标准化的.

任何明显对应于"无操作"的未受保护的源级构造都不会有机会对抗最基本的优化.