c++ - 为什么 Doom 3 源代码中有 assert( sizeof( bool ) == 1 )?

标签 c++ assert sizeof

Here's the assert .在什么合理的情况下它会失败,为什么游戏要检查它?

最佳答案

某些平台将 bool 定义为与 int 相同的大小。至少旧版本的 Mac OS X(可能还有其他 RISC BSD 端口)是这样的。据推测,代码使用 bool 数组并假设效率。 Doom 已移植到许多平台,因此它可能对此类事情非常谨慎。

它必须在运行时完成,因为没有指定 sizeof(bool) 的标准宏,并且编译时检查直到 C++11 才适用于非宏表达式。

关于c++ - 为什么 Doom 3 源代码中有 assert( sizeof( bool ) == 1 )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20930113/

相关文章:

c++ - TensorFlow 自定义分配器和从 Tensor 访问数据

c# - Verify() 和 Setup()...VerifyAll() 之间的最小起订量区别

c - 如何在 C 中找到动态分配数组的大小?

c++ - QTreeView 的两个嵌套代理模型和段错误

c++ - eekg() 函数失败

java - 断言语句后出现 ArrayIndexOutOfBoundsException

c - 使用 sizeof 计算数组的长度

c++ - 当编译器决定填充结构时

c++ - 如何减少录音程序中的CPU消耗(c++)

javascript - 在 node.js 中断言值