C语言assert用法(转载)

assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行.
原型定义:#include <assert.h>
void assert(int expression);
Assert 的作用是计算表达式expression,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用abort来终止程序运行。
使用assert的缺点是,频繁的调用会极大地影响程序的性能,增加额外的开销。
在调试结束后,可以通过在包含#include <assert.h>的语句之前插入#define NDEBUG来禁用assert的调用。
用法总结与注意事项:
1)在函数开始处检验传入参数的合法性。
例如:比较两个一位数的大小
#include <assert.h>
int max(int a,int b)
{
assert(a>=0&&a<10);
assert(b>=0&&b<10);
return a>b ? a:b;
}
2)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观判断是哪个条件失败。 C语言assert用法(转载)
3)不能改变环境的语句,因为assert只在DEBUG个生效,如果这么做,会使程序在运行时遇到问题。
C语言assert用法(转载)
4)assert和后面的语句应空一行,以形成逻辑和视觉上的一致感。
5)有的地方assert不能代替条件过滤。

上一篇:schtasks确实可以绕过UAC,简直不可思议啊~~


下一篇:易错总结:String 定义的那些字符串之间的比较