如何在不更改命令行的情况下禁用断言?

Ash*_*hot 2 c++ debugging assert

我有带有断言的C++代码.当我用g++ -D NDEBUG选项编译代码时,没有执行断言命令.但是当我在代码中包含NDEBUG #define NDEBUG并且没有-D NDEBUG选项编译它时,执行assert命令.如何在不更改命令行的情况下禁用断言?

sim*_*onc 9

您必须NDEBUG在包含定义的标头之前定义assert.尝试

#define NDEBUG
#include <assert.h>
Run Code Online (Sandbox Code Playgroud)

在源文件的顶部,您要禁用断言.