【发布时间】:2018-02-17 09:45:04
【问题描述】:
我无法理解断言语句的性质
我以为我的程序运行不正常,但是当我在 main 打印出程序返回给我的返回值时,它正是我的 assert 语句应该接受的值。我不确定发生了什么。我将函数复制粘贴到另一个文件中,然后复制粘贴我的断言语句,这次不同的断言案例起作用(一些不起作用的情况,现在起作用,而一些起作用的情况,现在不起作用)。 当我通过调试器工作时,似乎断言语句导致了某个逻辑语句
有时不工作,当逻辑应该工作时。我不明白为什么...有人可以向我解释一下吗?
【问题讨论】:
-
使用
assert时要小心。首先,它是一个宏,这意味着它可以多次评估其参数。其次,当定义NDEBUG宏时它什么也不做,在某些构建系统上,它会自动设置为发布构建。第三,一个失败的断言会强制中止你的程序,让它看起来像一个崩溃。 -
是的,会的!谢谢。
标签: c++