断言:
使用断言调试某种情况,可以在某些情况下打印或者特殊处理,相当于高级的异常处理,或者判断是否具有某项功能
简单的使用assert(express)既可以
更多时候是自己写一些灵活的断言:
#undef _EXAM_ASSERT_TEST_ //关闭断言
#define _EXAM_ASSERT_TEST_ //开启断言
#ifdef _EXAM_ASSERT_TEST_ //若使用断言测试
void exam_assert(char * file_name,unsigned int line_no)
{
printf(" [EXAM]Assert faillded:%s,line %u ",file_name,line_no);
abort();
}
#define EXAM_ASSERT(condition) do{if(condition) NULL; else exam_assert(__FILE__,__LINE__);}while(0)
#else
#define EXAM_ASSERT(condition) NULL
#endif