在海湾合作委员会中实现Borland的__emit__宏
Implementing Borland's __emit__ macro in GCC
在Borland中,有一个宏__emit__
,"一个将文字值直接注入目标代码的伪函数"(James Holderness)。
gcc/g++有等价物吗?(我似乎在文档中找不到)
如果没有,如何在我的C++源代码中实现它?
用法可以在 变形代码示例
你可以看看.byte
汇编指令:
asm __volatile__ (".byte 0xEA, 0x00, 0x00, 0xFF, 0xFF");
GCC 的优化器有时会丢弃asm
语句,如果他们确定不需要输出变量。此外,如果优化器认为代码将始终返回相同的结果(即其输入值在调用之间没有变化),则可能会将代码移出循环。使用可变限定符将禁用这些优化。
无论如何,您应该注意许多极端情况(例如,gcc 在转到后跳过 asm 代码......
相关文章:
- Borland C++编译器中的Iostream
- 节点.js到 c++ 客户端:不接收来自 socket.emit 的消息
- 为什么预处理器会用Borland C 识别枚举值,而不是通过视觉C 识别
- Borland C++ 5.02 中使用第三方头文件的多线程
- embarcadero/borland TMemoryStream和TFileStream的标准C++等价物是什么?
- QSharedPointer 在 emit 中被销毁
- Borland C++ - 使用OLE使用Word打开RTF文件
- Qt 编译器错误:未在此范围内声明"emit"
- 将视觉C 代码转换为Borland C 构建器
- 手动编程Borland图形界面上的可点击按钮
- 在Borland 2006中创建TAnimate
- Borland C++Builder 6 Strings操作太慢
- 如何在VS代码中使用Borland C
- Borland Developer Studio的开源替代品
- Borland C++ ListView Error
- Borland Builder 5 c++ 字符串不能在 0 处索引
- 从用户应用程序访问环0模式(以及Borland允许这样做的原因)
- Borland C++ 这个布尔函数返回什么
- 无法在Borland编译器中创建流程
- .NET流程到Borland C 流程通信