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/