zoukankan      html  css  js  c++  java
  • C语言中静态断言的使用

    编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作异常处理的高级形式,用于代码调试。

    #define _CRT_SECURE_NO_WARNINGS    //关闭安全监察
    #include <stdio.h>
    #include <stdlib.h>
    #include <assert.h>    //静态断言的头文件
    
    void main()
    {
        double db1, db2;
    
        printf("输入被除数和除数:
    ");
        scanf("%lf%lf", &db1, &db2);
    
        assert(db2 != 0);
    
        printf("%f/%f=%f
    ", db1, db2, db1 / db2);
    
        system("pause");
    }

    如果除数输入不为0,则程序没有错误,正常运行:

    如果输入除数为0,此时触发断言:

    同时也可利用宏 NDEBUG 来打开或关闭断言:

    #define _CRT_SECURE_NO_WARNINGS    //关闭安全监察
    #define NDEBUG        //关闭静态断言
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <assert.h>    //静态断言的头文件
    
    void main()
    {
        double db1, db2;
    
        printf("输入被除数和除数:
    ");
        scanf("%lf%lf", &db1, &db2);
    
        assert(db2 != 0);
    
        printf("%f/%f=%f
    ", db1, db2, db1 / db2);
    
        system("pause");
    }

    定义宏 NDEBUG 后,断言关闭,输入除数为0,程序仍然可以执行:

  • 相关阅读:
    linux常用命令笔记
    head first html与css
    多线程编程核心技术日记
    nio
    排序算法
    随笔
    数据库读写分离
    购物网站设计
    http
    servlet初始化
  • 原文地址:https://www.cnblogs.com/si-lei/p/9482550.html
Copyright © 2011-2022 走看看