分享

assert.h头文件之断言

 nuster 2016-02-29

       在现实世界中,我们脑袋时刻都在判断对与错,对的事情我们会继续深入下去,而错的事情我们会马上停止,那么在编程开发中我们如何赋予程序这种判断事物对错的能力呢?其中一个方案就可以使用断言assert,我们最常用的地方就是在函数中检查形参的数据合法性。

1、函数所属头文件:

        assert.h

2、函数原型:

        void assert (int expression);

3、功能说明:

        assert的关键在于判断expression的逻辑真假,如果为false,就会在stderr上面打印一条包含“表达式,文件名,行号”的错误信息,然后调用abort结束整个程序。

4、程序实例:

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. //#define NDEBUG        //可以禁止断言  
  4. #include <assert.h>  
  5.   
  6. void main()  
  7. {  
  8.     //测试true情况:以写打开一个文件,不存在则创建新文件  
  9.     FILE *fpWrite = fopen("d:\\testWrite""w");  
  10.   
  11.     //不会出错  
  12.     assert(fpWrite != NULL);  
  13.   
  14.     fclose(fpWrite);  
  15.   
  16.     //测试false情况:以读打开一个文件,不存在会失败  
  17.     FILE *fpRead = fopen("d:\\testRead""r");  
  18.   
  19.     //会出错  
  20.     assert(fpRead != NULL);  
  21.   
  22.     //程序调用abort退出,不会执行到此步  
  23.     fclose(fpRead);  
  24.     system("pause");  
  25. }  
       当然,频繁的调用assert会影响系统性能,增加系统额外的开销,如果想禁用断言功能时,可以在assert.h头文件之前定义NDEBUG。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多