源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

浅析C语言中assert的用法

  • 时间:2021-04-02 09:50 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:浅析C语言中assert的用法
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: [b]#include <assert.h> void assert( int expression ); [/b]assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 然后通过调用 abort 来终止程序运行。 [b]请看下面的程序清单badptr.c: [/b]
[u]复制代码[/u] 代码如下:
#include <stdio.h> #include <assert.h> #include <stdlib.h> int main( void ) {        FILE *fp;        fp = fopen( "test.txt", "w" );//以可写的方式打开一个文件,如果不存在就创建一个同名文件        assert( fp );                           //所以这里不会出错        fclose( fp );        fp = fopen( "noexitfile.txt", "r" );//以只读的方式打开一个文件,如果不存在就打开文件失败        assert( fp );                           //所以这里出错        fclose( fp );                           //程序永远都执行不到这里来        return 0; }
[b]宏名: assert [/b]功 能: 测试一个条件并可能使程序终止 用 法: void assert(int test); [b]程序例: [/b]
[u]复制代码[/u] 代码如下:
#include <assert.h> #include <stdio.h> #include <stdlib.h> struct ITEM {   int key;   int value; }; /* add item to list, make sure list is not null */ void additem(struct ITEM *itemptr) {   assert(itemptr != NULL);   /* add item to list */ } int main(void) {   additem(NULL);   return 0; }
[b]assert() 宏用法 [/b][b]注意:assert是宏,而不是函数。在C的assert.h头文件中。 [/b]assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:
[u]复制代码[/u] 代码如下:
#include <assert.h> void assert( int expression );
assert的作用是先计算表达式[b]expression[/b],如果其值为假(即为0),那么它先向标准错误流[b]stderr[/b]打印一条出错信息,然后通过调用[b]abort[/b]来终止程序运行;否则,assert()无任何作用。宏assert()一般用于确认程序的正常操作,其中表达式构造无错时才为真值。完成调试后,不必从源代码中删除assert()语句,因为宏NDEBUG有定义时,宏assert()的定义为空。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部