跳转到内容

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 宏。

华夏公益教科书