我对各种平台/编译器(“实现”)/框架将C和C++预处理宏NDEBUG分配给何种目的感兴趣。
C和C++标准只在一处提到了这个定义,即控制assert()
宏的行为。
我想要包含特定答案,其中你知道某个C或C++的平台/框架/库使用NDEBUG
定义来启用或禁用除了标准定义的assert()
宏之外的任何内容。
提出这个问题的原因之一是因为MS(Visual-C++)始终(?)使用他们自己的_DEBUG
定义来区分调试和发布的代码。我想知道这是否是库/平台具有自己的调试定义的常见做法,或者其他库/平台是否使用NDEBUG
来处理与调试相关的内容。