assert()解析
说明
/*
* assert是一个宏,不是函数。
*
* assert()常用于函数入口的参数检查。
*
* 若assert()括号里的值为假,则终止程序运行,并提示错误。
* 若assert()括号里的值为真,则继续运行。
*
* assert()只在Debug版本上起作用。
* assert()在Release版本上被编译器完全优化。
*
* assert()的作用就是让我们尽可能在调试函数时把错误排除掉,而不是等到release以后;
* 并且参数出现错误并非函数本身的问题,而是调用者传入的参数有问题。
*
*/
源代码
#include <assert.h>
#include <stdio.h>
int main()
{
char *p = NULL;
assert(NULL != p);
return 0;
}
运行结果
[root@localhost lwp_workspace]# ./test
test: assert.c:24: main: Assertion `((void *)0) != p' failed.
已放弃
[root@localhost lwp_workspace]#