Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中的掩盖资产+;_C++_Assert - Fatal编程技术网

C++ C+中的掩盖资产+;

C++ C+中的掩盖资产+;,c++,assert,C++,Assert,我一直在向包中添加一个模块。我有一堆断言,我现在意识到它们既没有被触发,也没有被编译。怎么可能?我在网上搜索“蒙面资产”,但没有任何线索。包的make规则是否会以某种方式删除断言?即使是断言(0)也不会导致程序SIGABORT…检查预处理器设置。定义NDEBUG(即编译器命令行上的-DNDEBUG)时,将删除所有断言。检查预处理器设置。定义NDEBUG(即编译器命令行上的-DNDEBUG)时,将删除所有断言。断言宏取决于NDEBUG的定义 如果定义了NDEBUG,则断言定义为: #define

我一直在向包中添加一个模块。我有一堆
断言,我现在意识到它们既没有被触发,也没有被编译。怎么可能?我在网上搜索“蒙面资产”,但没有任何线索。包的make规则是否会以某种方式删除断言?即使是断言(0)
也不会导致程序SIGABORT…

检查预处理器设置。定义
NDEBUG
(即编译器命令行上的
-DNDEBUG
)时,将删除所有断言。

检查预处理器设置。定义
NDEBUG
(即编译器命令行上的
-DNDEBUG
)时,将删除所有断言。

断言宏取决于NDEBUG的定义

如果定义了NDEBUG,则断言定义为:

#define assert(ignore) ((void)0)

assert仅在调试模式下进行检查,而不在发布模式下进行检查。

assert宏取决于定义

如果定义了NDEBUG,则断言定义为:

#define assert(ignore) ((void)0)

assert只在调试模式下进行检查,而不在发布模式下进行检查。

hm,那么“忽略”也是一个关键字吗?谢谢大家,我删除了makefile模板中的“-D NDEBUG”行,现在它可以工作了。不<代码>忽略不是关键字。它是宏参数,在本例中被宏定义忽略。hm,那么“ignore”也是一些关键字吗?谢谢大家,我删除了makefile模板中的“-D NDEBUG”行,现在它可以工作了。不<代码>忽略不是关键字。它是宏参数,在本例中,宏定义将忽略该参数。