1.首先assert是个宏而不是函数,它的作用是什么之前。
起着测试条件和终止程序的作用。
2.如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的 语句,它的作用是终止程序以免导致严重后果,同时也便于查找错误。
3.所需头文件:#include <assert.h>
报告错误的条件:assert(0);
4.何时需要使用断言
1.可以在预计正常情况下程序不会到达的地方放置断言:ASSERT( FALSE );
2.断言可以用于检查传递给私有方法的参数。(对于公有方法,因为是提供给外部的接口, 所以必须在方法中有相应的参数检验才能保证代码的健壮性)
3.使用断言测试方法执行的前置条件和后置条件
4.使用断言检查类的不变状态,确保任何情况下,某个变量的状态必须满足。(如age属性应 大于0小于某个合适值)
5.什么地方不要使用断言
断言语句不是永远会执行,可以屏蔽也可以启用
因此:
1.不要使用断言作为公共方法的参数检查,公共方法的参数永远都要执行
2.断言语句不可以有任何边界效应,不要使用断言语句去修改变量和改变方法的返回值
起着测试条件和终止程序的作用。
2.如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的 语句,它的作用是终止程序以免导致严重后果,同时也便于查找错误。
3.所需头文件:#include <assert.h>
报告错误的条件:assert(0);
4.何时需要使用断言
1.可以在预计正常情况下程序不会到达的地方放置断言:ASSERT( FALSE );
2.断言可以用于检查传递给私有方法的参数。(对于公有方法,因为是提供给外部的接口, 所以必须在方法中有相应的参数检验才能保证代码的健壮性)
3.使用断言测试方法执行的前置条件和后置条件
4.使用断言检查类的不变状态,确保任何情况下,某个变量的状态必须满足。(如age属性应 大于0小于某个合适值)
5.什么地方不要使用断言
断言语句不是永远会执行,可以屏蔽也可以启用
因此:
1.不要使用断言作为公共方法的参数检查,公共方法的参数永远都要执行
2.断言语句不可以有任何边界效应,不要使用断言语句去修改变量和改变方法的返回值