我用C++写了一段代码,然后写了一个主文件来检查它,在这个主文件中,我用断言来检查我得到的值是否为真。。。但过了一段时间,我发现即使我输入了错误的值,我在bash上也不会出错。有人知道为什么吗?或者为什么会发生这样的事情?
例如:
assert(numOfSegments == 1); // i don't get warning
//but also
assert(numOfSegments == 100); // also here no warning even though this is wrong
//这就是我在bash:中编译的方式
g++-std=c++0x-DNDEBUG-g*.cpp
来源https://en.cppreference.com/w/cpp/error/assert:
如果
NDEBUG
在源代码中包含的位置被定义为宏名称,则assert不执行任何操作。
由于使用-DNDEBUG
进行编译,因此这些语句根本不起任何作用。