我用C ++编写了一个代码,然后编写了一个主文件来检查它,在这个主文件中,我使用了一个断言来检查我得到的值是否为真... 但是一段时间后,我发现即使输入了错误的值,我在bash上也不会出错。有人知道为什么吗?还是为什么会发生这种事情?
例如:
totalCount = data.SLCancellationRequestList.totalCount;
//这就是我在bash中进行编译的方式:
g ++ -std = c ++ 0x -DNDEBUG -g * .cpp
答案 0 :(得分:3)
来自https://en.cppreference.com/w/cpp/error/assert:
如果在源代码中包含
NDEBUG
的位置将其定义为宏名称,则assert不会执行任何操作。
由于您使用-DNDEBUG
进行编译,因此这些语句根本没有做任何事情。