在我的程序中使用assert时遇到了一个奇怪的问题。
即使我添加一行代码assert(false)
,程序也不会终止。
但是当我写几行示例代码时assert
有效。谁知道为什么会这样?
答案 0 :(得分:15)
如果你有:
#define NDEBUG
这会将所有assert
转换为nop
。
答案 1 :(得分:0)
如果你有不同的行为,取决于代码的数量,那么我猜你没有定义NDEBUG
,我猜想编译器只是编译冗余代码。
有关环境的更多详细信息,但是,您给出了明确的答案。