我试图使用在 cassert-header 中定义的关键字 assert。 当我使用 g++ 编译我的程序并附加一个像这样的标志时:-D NDEBUG,我的程序按预期运行。 但是当我在翻译单元中实际指定预处理器变量时它不起作用(我的程序从断言终止)。
有人知道这是为什么吗? 提前感谢您的帮助!
这是我的源代码:
#include <iostream>
#include <cassert>
#define NDEBUG
int main(int argc, char ** argv) {
int a = 1, b = 2;
assert(b < a);
return 0;
}