描述
C库中定义的宏void assert(int expression)可以诊断是否将信息写入到标准错误文件中。换句话说,他是C程序中的诊断语句。
声明
下面是assert()宏声明:
void assert(int expression);
参数
-
expression − 可以是一个变量或其他C表达式。如果表达式结果为真,assert()什么也不做。如果为假,assert()会将错误信息输出到stderr(标准错误输出,显示错误信息和诊断信息)并终止程序的执行。
返回值
该宏不返回任何值。
示例
下面是assert()宏示例 −
#include <assert.h> #include <stdio.h> int main() { int a; char str[50]; printf("Enter an integer value: "); scanf("%d", &a); assert(a >= 10); printf("Integer entered is %d\n", a); printf("Enter string: "); scanf("%s", str); assert(str != NULL); printf("String entered is: %s\n", str); return(0); }
对上面程序进行编译并运行,在交互模式下会得到如下输出,你可以尝试输入小于10的数字,会得到错误输出 −
Enter an integer value: 11 Integer entered is 11 Enter string: tutorialspoint String entered is: tutorialspoint