[控场AI]
概念

NDEBUG

C 标准库约定的预处理宏,定义后会使 assert 展开为空语句从而在编译期移除断言,是 C/C++ 构建配置中控制断言行为的传统机制

时间轴 (近 90 天)

10月16日

<debugging> 提供的调试断点不受 NDEBUG 宏影响,应在所有构建配置下都可用。

待验证50%
10月16日

当定义了 NDEBUG 时(通常在 Release 构建中),assert 宏会被展开为空操作。

待验证50%
10月15日

NDEBUG 宏被定义时,标准头文件 <cassert> 会把 assert(expr) 展开为空语句,从而让断言在编译期被彻底移除。

待验证50%
10月15日

NDEBUG 是全局性的,无法针对单个函数、单个模块或单类条件进行差异化控制。

待验证50%

全部知识事实 (4)

来源文章