zoukankan      html  css  js  c++  java
  • assert C++ Reference

    assert - C++ Reference

    assert

    <cassert>
    void assert (int expression);
    Evaluate assertion

    If the argument expression of this macro with functional form compares equal to zero (i.e., the expression is false), a message is written to the standard error device and abort is called, terminating the program execution.



    The specifics of the message shown depend on the specific implementation in the compiler, but it shall include: the expression whose assertion failed, the name of the source file, and the line number where it happened. A usual expression format is:



    Assertion failed: expression, file filename, line line number


    This macro is disabled if at the moment of including assert.h a macro with the name NDEBUG has already been defined. This allows for a coder to include many assert calls in a source code while debugging the program and then disable all of them for the production version by simply including a line like:

    #define NDEBUG
    at the beginning of its code, before the inclusion of assert.h.



    Therefore, this macro is designed to capture programming errors, not user or running errors, since it is generally disabled after a program exits its debugging phase.


    Parameters

    expression
    Expression to be evaluated. If this expression evaluates to 0, this causes an assertion failure that terminates the program.

    Return Value

    none


    Example

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    /* assert example */
    #include <stdio.h>
    #include <assert.h>
    
    void print_number(int* myInt) {
      assert (myInt!=NULL);
      printf ("%d\n",*myInt);
    }
    
    int main ()
    {
      int a=10;
      int * b = NULL;
      int * c = NULL;
    
      b=&a;
    
      print_number (b);
      print_number (c);
    
      return 0;
    }





    In this example, assert is used to abort the program execution if print_number is called with a null pointer as attribute. This happens on the second call to the function, which triggers an assertion failure to signal the bug.

  • 相关阅读:
    C/C++ 构造函数不能是虚函数
    C/C++ STL迭代器失效
    Linux fork函数
    算法和数据结构 限流算法
    数据库 redis底层实现
    C/C++ 虚析构函数
    万物皆可 Serverless 之使用云函数 SCF 快速部署验证码识别接口
    万物皆可 Serverless 之使用云函数 SCF+COS 免费运营微信公众号
    腾讯云云函数 SCF 日志检索最佳实践
    江娱互动「世界争霸」产品迁移至腾讯云云函数的实践
  • 原文地址:https://www.cnblogs.com/lexus/p/2591830.html
Copyright © 2011-2022 走看看