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

  • 相关阅读:
    SpringCloud采用Dubbo远程调用(SpringCloud Alibaba)
    服务注册与发现Nacos
    Nacos配置管理
    Spring Cloud Stream
    MySQL查询优化explain
    索引
    MySQL架构
    mysql事务、视图
    多表查询
    分布式为什么使用python
  • 原文地址:https://www.cnblogs.com/si-lei/p/9482550.html
Copyright © 2011-2022 走看看