在Borland中,有一个宏__emit__
,"一个伪函数,它将文字值直接注入到目标代码中。 (James Holderness)。
是否有gcc / g ++的等价物? (我似乎无法在文档中找到一个)
如果没有,我怎么能在我的C ++源代码中实现它?
找到用法答案 0 :(得分:4)
您可以查看.byte
汇编程序指令:
asm __volatile__ (".byte 0xEA, 0x00, 0x00, 0xFF, 0xFF");
如果GCC的优化器确定不需要输出变量,它们有时会丢弃asm
语句。此外,如果优化器认为代码将始终返回相同的结果(即,其调用之间的输入值都没有变化),则优化器可以将代码移出循环。 Using the volatile qualifier disables these optimizations
无论如何,你应该注意许多极端情况(例如gcc skips asm code after goto ...)