一、断言的作用
1、在预计正常情况下程序不会到达的地方放置断言:assert false;
2、可检测用于检查传递给私有方的参数;
3、测试前置条件和后置条件
(备注:断言语句不可以有任何边界效应,不要使用断言语句去修改变量和改变方法的返回值)
4、检测类的不变状态(eg: assert(time>88); )
二、assert宏使用
宏assert原型定义在<assert.h>中,作用是如果其条件返回错误,则程序终止执行,原型定义:
# define assert(expr) \
((expr) \
? __ASSERT_VOID_CAST (0) \
: __assert_fail (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION))
禁止assert功能: 在assert.h 中定义NDEBUG即可
代码:
#include<stdio.h>