为什么让 assert
宏只在调试配置中做一些有用的事情是一种常见的做法?如果它的存在是为了测试不变量和检测编码错误,那么继续在生产软件中实现同样的大繁荣不是更容易吗?
我有一些 S60 背景并且存在 __ASSERT_ALWAYS
和 __ASSERT_DEBUG
,后者等同于 assert
。
最佳答案
断言是为那些应该永远不会发生的事情而创建的,即如果它发生了,那么你的代码中就有一个你需要修复的错误。发布是“应该”没有错误的构建,并且使用断言为用户杀死应用程序与任何其他错误行为一样糟糕。
关于c++ - 为什么断言宏仅用于调试构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11778121/