C 编程/assert.h/assert
外观
(重定向自 C 编程/C 参考/assert.h/assert)
void assert(expression);
assert
宏返回一个 void
,也就是说,没有值。
assert
宏的行为取决于 NDEBUG
宏的值。有关详细信息,请参见 assert.h。
如果定义了 NDEBUG
,则无论参数如何,assert
宏都定义为
#define assert(expression) ((void) 0)
如果未定义 NDEBUG
,则 assert
宏充当诊断测试。如果宏的 表达式
参数为假(请参见 C 编程/控制),则宏扩展为一个语句,该语句将参数的文本、当前文件名、行号和函数名写入标准错误流。最后,assert
宏调用 abort()
函数。
每次包含 assert.h
头文件时,都会根据 NDEBUG
的值重新定义 assert
宏。