C语言assert关键字
来源:互联网 发布:cf手游刷等级软件 编辑:程序博客网 时间:2024/06/14 23:16
这是C语言的assert.h头文件的定义
#include "cvidef.h" #include "cvirte.h" #ifndef _ASSERT_H_ #define _ASSERT_H_ #ifdef __cplusplus extern "C" { #endif #undef assert #ifdef NDEBUG #define assert(exp) ((void) 0) #else void CVIANSI _assert(char *, char *, int); #define assert(exp) ((exp) ? (void) 0 : _assert(#exp, __FILE__, __LINE__)) #endif #ifdef __cplusplus } #endif #endif /* _ASSERT_H_ */关键是看 这句
#define assert(exp) ((exp) ? (void) 0 : _assert(#exp, __FILE__, __LINE__))1,如果 exp为真,则返回0,不进行任何操作。
2,如果exp为假,则调用_assert(#exp, __FILE__, __LINE__)
_assert(#exp, __FILE__, __LINE__)就是打印 assert断言的内容: 主要是 exp的字符串, 当前文件的名字, 当前行数。
具体例子如下:
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>#define DEBUG//#undef DEBUG/**assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,*/void main(){#ifdef DEBUG printf("rong\n");#endif fprintf(stderr,"error\n"); assert(1); int a = 1; assert(a == 1);}编译与运行:
当assert()内为真时:
-bash-4.1$ gcc -o a Demo.c -bash-4.1$ ./arongerror-bash-4.1$当assert()内为假时:
-bash-4.1$ gcc -o a Demo.c -bash-4.1$ ./arongerrora: Demo.c:24: main: Assertion `0' failed.已放弃 (core dumped)-bash-4.1$
阅读全文
0 0
- C语言assert关键字
- C关键字assert详解
- C语言关键字:static,const,inline,volatile与assert()等
- C语言 assert()函数
- C语言assert宏
- c语言中的assert
- C语言之ASSERT
- C语言中的assert
- C语言assert
- C语言 assert()函数
- C语言之assert()
- c语言中的assert函数
- C语言assert的用法
- c语言中的assert函数
- C语言assert的用法
- C语言assert的用法
- C语言之宏assert
- C语言assert的用法
- 开始前端-----第六篇
- thinkPHP如何将前台后台一起实现静态化,隐藏index.php,实现分组模式
- Movavi Game Recorder 5(游戏录像软件)官方中文版V5.4.0下载 | screen capture 下载
- Lucene之显示分词信息-yellowcong
- 要拥有自己的核心竞争力“看家本领”
- C语言assert关键字
- 数据库—基本概念
- 如何实现copy一个视频并且改变md5
- Queue
- Java国际化,使用ResourceBundle的方式读取配置文件
- UltraEdit 22、23版本系列32bit、64bit破解方法
- TensorFlow视频教程
- 优秀程序员应具备的15个特性
- logging