assert
是宏,而不是函数。它的原型定义在头文件 assert.h 中:
宏 assert 经常用于在函数开始处检验传入参数的合法性,可以将其看作是异常处理的一种高级形式。assert 的作用是 先计算表达式 expression,然后判断:
- 如果表达式值为假,那么它先向 stderr 打印错误信息,然后通过调用 abort 来终止程序运行。
- 如果表达式值为真,继续运行后面的程序。
注意:assert
只在 DEBUG
下生效,在调试结束后,可以通过在 #include <assert.h>
语句之前插入 #define NDEBUG
来禁用 assert 调用。