• 使用断言assert


    之前有看过关于Assert的书,但是不懂得如何去用,最近看别人写的代码有用这个断言(assert),今天自己动手看看如何使用断言。

      断言(assert)的语义如下:如果表达式的值为0(假),则输出错误消息并终止程序的执行(一般还会出现提示对话框,说明在什么地方引发了assert);如果表达式为真,则不进行任何操作。因此断言失败就表明程序存在一个bug.

      C++/C 的宏assert(expression)就是这样的断言,当表达式为假时,调用库函数abort()终止程序。

      程序一般分为Debug版本和Release版本,前者用于内部调试,后者用于发行给用户使用。由于 assert(expression)的宏体全部被条件编译为伪指令#ifdef _DEBUG和#endif所包含,因此assert(expression)只在Debug版本里有效

          assert(expression)例子:

      1. 在函数的入口处,建议使用断言来检查参数的有效性(合法性)

    #define byte unsigned char 
    void *memcpy(void *pvTo, const void *pvFrom, size_t size)
    {
      //使用断言,防止pvTo 和 pvFrom 为NULL assert((pvTo
    != NULL)&&(pvFrom != NULL)); byte *pbTo = (byte*)pvTo; byte *pbFrom = (byte*)pvFrom; while(size-- > 0) { *pbTo++ = *pbFrom++; } return pvTo; }

     

  • 相关阅读:
    Python进阶06 循环对象
    Python进阶05 循环设计
    Python进阶 函数的参数对应
    Python进阶01 词典
    Python基础 反过头来看看
    Python基础08 面向对象的基本概念
    利用zepto.js实现移动页面图片全屏滑动
    数组弃重方法
    fcc筆記
    文字颜色渐变效果
  • 原文地址:https://www.cnblogs.com/wiessharling/p/3260119.html
Copyright © 2020-2023  润新知