C标准库—<assert.h>
简介
C标准库的assert.h头文件提供了一个名为assert的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。
已定义的宏assert执行另一个宏NDEBUG,宏NDEBUG不是<assert.h>的一部分。如果已在引用<assert.h>的源文件中定义NDEBUG为宏名称,则assert宏的定义如下:
#define assert(ignore) ((void)0)
库宏
下面列出了头文件assert.h中定义的唯一的函数:
序号 | 函数&描述 |
---|---|
1 | void assert(int expression) 这实际上是一个宏,不是一个函数,可用在C程序中添加诊断。 |
C库宏-assert()
描述
C库宏**void assert(int expression)**允许诊断信息被写入到标准错误文件中。换句话说,它可用在C程序中添加诊断。
声明
下面是assert()宏的声明。
void assert(int expression);
参数
- expression–这可以是一个变量或任何C表达式。如果expression为TRUE,assert()不执行任何动作。如果expression为FALSE,assert()会在标准错误stderr上显示错误信息,并中止程序执行。
返回值
这个宏不返回任何值。
实例
下面实例演示了assert()宏的用法:
#include<assert.h>
#include<stdio.h>
int main()
{
int a;
char str[50];
printf("请输入一个整数值:");
scanf("%d",&a);
assert(a>=10);
printf("输入的整数是:%d\n",a);
printf("请输入字符串:");
scanf("%s",str);
assert(str!=NULL);
printf("输入的字符串是:%s\n",str);
return 0;
}
上面程序被编译和执行时:
请输入一个整数值: 11
输入的整数是: 11
请输入字符串: wangzhe
输入的字符串是: wangzhe