C语言中,断言的使用

    xiaoxiao2022-06-29  39

    标准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"); }

    转载请注明原文地址: https://ju.6miu.com/read-1124820.html

    最新回复(0)