C语言中,断言的使用
2016-09-14 14:23
218 查看
标准C中的断言函数assert(),如果断言函数的参数为0时将触发断言函数的执行,会在运行时程序崩溃。
我从FreeRTOS中学到,FreeRTOS中的断言函数configASSERT()和标准C中的断言函数assert()是一样的,
我们可以重新利用他,下面我用一个简单的程序实例,来学习下。
#include<stdio.h>
#include<stdlib.h>
//#include<assert.h>
#define configASSERT(x) if((x) ==0){printf("错误代码位置:%s\n行数:%d\n",__FILE__,__LINE__),exit(1);}
struct ITEM{
int key;
int value;
};
void additem(struct ITEM *itemptr){
configASSERT(itemptr != NULL);
// assert(itemptr != NULL);
printf("additem\n");
}
void main()
{
//struct ITEM *item = (struct ITEM*)malloc(sizeof(struct ITEM));
struct ITEM *item = NULL;
additem(item);
printf("main\n");
}
我从FreeRTOS中学到,FreeRTOS中的断言函数configASSERT()和标准C中的断言函数assert()是一样的,
我们可以重新利用他,下面我用一个简单的程序实例,来学习下。
#include<stdio.h>
#include<stdlib.h>
//#include<assert.h>
#define configASSERT(x) if((x) ==0){printf("错误代码位置:%s\n行数:%d\n",__FILE__,__LINE__),exit(1);}
struct ITEM{
int key;
int value;
};
void additem(struct ITEM *itemptr){
configASSERT(itemptr != NULL);
// assert(itemptr != NULL);
printf("additem\n");
}
void main()
{
//struct ITEM *item = (struct ITEM*)malloc(sizeof(struct ITEM));
struct ITEM *item = NULL;
additem(item);
printf("main\n");
}
相关文章推荐
- 编程精粹--编写高质量C语言代码(3):自己设计并使用断言(二)
- c语言——面试之assert断言使用
- C语言编程精髓读书笔记(怎样有效地使用断言和避免自由主义编码)
- 编程精粹--编写高质量C语言代码(3):自己设计并使用断言(二)
- 编程精粹--编写高质量的C语言代码(2):自己设计并使用断言(一)
- 用C++ 而不是 C(2)使用断言
- 使用TC调试c语言的时候运行时出现“unable to open input file 'cos.obj'
- 水滴石穿C语言之正确使用const
- c语言中使用环境变量的技巧
- JAVA中断言的使用
- 水滴石穿C语言之正确使用const
- 在VC程序中使用调试语句----(一)断言
- 水滴石穿C语言之正确使用const
- JAVA中断言的使用
- C语言学习零碎整理(6):怎样使用命令行参数
- C语言中正确使用const
- 如何在linux下使用c语言操作临时文件
- 一些内存使用问题(c语言)
- 水滴石穿C语言之内存使用
- “TC(turbo c)及Visual c++是被广泛使用的c语言” ? !