1

在我的程序中使用 assert 时遇到了一个奇怪的问题。即使我添加了一行代码,程序也不会终止assert(false)。但是assert当我编写几行示例代码时就可以了。有人知道为什么会这样吗?

4

2 回答 2

25

如果你有:

#define NDEBUG

这会将所有assert的 ' 变成nop'。

于 2013-09-06T11:15:17.180 回答
1

如果您有不同的行为,具体取决于代码量,那么我猜您没有NDEBUG定义,我猜编译器只是在编译冗余代码。

需要有关环境的更多详细信息,但是,您要给出明确的答案。

于 2013-09-06T11:21:37.287 回答