C语言再学习-- assert 断言宏

来源:互联网 发布:centos软件安装目录 编辑:程序博客网 时间:2024/05/22 03:53

描述:

断言 assert 是仅在 Debug 版本起作用的宏,它用于检查“不应该”发生的情况。

C 库宏 void assert(int expression) 允许诊断信息被写入到标准错误文件中。换句话说,它可用于在 C 程序中添加诊断。

声明:

下面是 assert() 宏的声明。

void assert(int expression);
参数
expression -- 这可以是一个变量或任何 C 表达式。
如果expressionTRUEassert() 不执行任何动作
如果expression FALSEassert() 会在标准错误 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请输入字符串: w3cschool 输入的字符串是: w3cschool 
请输入一个整数值: 3a.out: assert.c:11: main: Assertion `a >= 10' failed.已放弃 (核心已转储)

0 0
原创粉丝点击