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