预处理器变量 NDEBUG 无效[关闭]

问题描述 投票:0回答:0

我试图使用在 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;
}
c++ assert preprocessor
© www.soinside.com 2019 - 2024. All rights reserved.