在汇编中,有 nop
操作码。假设我想单独使用 C/C++ 语法在生成的程序集中包含该操作码。有什么可移植的方法可以实现吗?
看完this , 我试着编译 (void)0;
在最新的 MSVC 15.5.2 中没有成功生成 nop 指令,启用或不启用优化。
自内联汇编 is not ISO C 标准的一部分及其在 C++ 中的支持是 conditional ,我想避免这种情况。
在 Microsoft Visual Studio 中,我知道我可以使用 header <intrin.h>
中定义的 __nop() 函数如记录here成功创建单个 nop
在生成的程序集中。
最佳答案
不,没有可移植的方法。
虽然编译器通常会为或多或少的奇异情况提供相当多的内部函数,并且通常还会提供一些内联编写汇编代码的方法,但这些都不是标准化的。
并且任何明显对应于“无操作”的不 protected 源代码级构造都没有机会抵抗最基本的优化。
关于c++ - 有没有一种在 C/C++ 中生成 nop 操作码的可移植方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48246046/