【发布时间】:2010-12-15 02:40:28
【问题描述】:
我目前正在从另一个平台移植一些代码,新平台上的布尔值是 1 字节大小。这破坏了我们的加载代码,因为值存储为 32 位值。此外,速度是我们平台上的一个关键问题,我们希望使用 32 位布尔值,因为处理器本身以 32 位运行,并且需要额外的操作来比较非 32 位布尔值。
有没有办法强制 gcc 使用 32 位布尔值而不是 8 位布尔值?
【问题讨论】:
-
遗憾的是,我只知道 Apple 的 GCC 上的 -mone-byte-bool 开关,但它与您想要的相反。
-
我想修复你的加载代码是不可能的? (它真的不应该假设像
int或bool这样的内置类型的大小) -
原来加载代码已经正确处理了大小的差异。问题来自加载代码的另一部分,假设枚举的大小为 4 个字节。只需在其中添加一个“FORCE_DWORD”值即可解决此问题。
标签: c++ gcc compiler-options