c++ - 为什么断言宏仅用于调试构建

标签 c++ c debugging assert

为什么让 assert 宏只在调试配置中做一些有用的事情是一种常见的做法?如果它的存在是为了测试不变量和检测编码错误,那么继续在生产软件中实现同样的大繁荣不是更容易吗?

我有一些 S60 背景并且存在 __ASSERT_ALWAYS__ASSERT_DEBUG,后者等同于 assert

最佳答案

断言是为那些应该永远不会发生的事情而创建的,即如果它发生了,那么你的代码中就有一个你需要修复的错误。发布是“应该”没有错误的构建,并且使用断言为用户杀死应用程序与任何其他错误行为一样糟糕。

关于c++ - 为什么断言宏仅用于调试构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11778121/

相关文章:

c++ - 如何将 lambda 函数排队到 Qt 的事件循环中?

c++ - C/C++ 编译器如何在头文件中找到原型(prototype)的定义?

c - 写入ini文件

c++ - 使用 Visual C++ 在单独的文件中提取调试信息

javascript - getInfoByClass 的简单错误?

c++ - 如何确定按下了键盘上的哪个键? C++

C++11:如果对象是使用 make_shared 构造的,如何删除它

c - 互操作 C 库时为 "Unresolved Reference"

java - 相当于Java中C语言的__FUNCTION__

c++ - 如何在 C++ 中的 visual studio 2010 中添加 .a 文件