void assert (int expression);
该函数包含在头文件<assert.h>内
其功能为当参数表达式为假时停止程序的执行(调用abort()函数),并向标准错误设备写相关的信息,其格式通常为 “Assertion failed:expression, file filename, line line number
"。
当在程序的头部包含 #define NDEBUG
时,该函数失效。故可在调试使用该函数,并在调试结束后在文件的头部加入 #define NDEBUG 使程序在使用时正常运行。
使用举例:
/* assert example */
#include <stdio.h> /* printf */
#include <assert.h> /* assert */
void print_number(int* myInt) {
assert (myInt!=NULL);
printf ("%d\n",*myInt);
}
int main ()
{
int a=10;
int * b = NULL;
int * c = NULL;
b=&a;
print_number (b);
print_number (c);
return 0;
}
该程序在print_number (b)处正常运行,但运行至
print_number (c)
时,程序停止执行,因为assert(myInt!=NULL)内的表达式为假。