gpt4 book ai didi

c - 为什么使用 NDEBUG 而不是 RELEASE?

转载 作者:太空狗 更新时间:2023-10-29 16:44:09 27 4
gpt4 key购买 nike

当宏 NDEBUG 定义时,标准 C assert 宏被禁用,意思是“不调试”。这会导致非常糟糕的双重否定情况,例如 #ifndef NDEBUG//DebuggingCode #endif。似乎 RELEASE 是一个更好的术语选择,但我无法相信标准委员会会在没有任何理由的情况下这样做....

最佳答案

NDEBUG 控制 assert 的行为。

您通常不应将其用于任何其他用途。如果您将它用于其他用途,例如额外的调试跟踪输出,则您无法在没有此额外代码但启用断言的情况下构建您的应用程序。

我建议您定义自己的预处理器符号,比如 MY_TRACE,然后使用它。此外,将其定义为 01 并使用 #if MY_TRACE。这样,如果您将编译器配置为在预处理器表达式中使用未初始化的变量时发出警告,那么您可以使用未正确初始化的符号捕获文件。

关于c - 为什么使用 NDEBUG 而不是 RELEASE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com