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,程序仍然可以执行:

  • 相关阅读:
    大文件上传
    zabbix接口
    Vue 在不同的环境使用不同的接口地址
    Vue发布流程
    RabbitMQ集群一些使用细节
    Watcher 系统整体流程图
    监控系统各个模块部署
    deepin安装node和npm最新
    google安装json插件
    数据库访问性能优化 Oracle
  • 原文地址:https://www.cnblogs.com/si-lei/p/9482550.html
Copyright © 2011-2022 走看看