• C语言 预处理三(条件编译--#if)


    //#if  条件编译
    //一般用于产品各个版本的语言包
    #include<stdio.h>
    #include<stdlib.h>
    
    //#都是预处理指令,条件表达式必须在预处理里面
    //所以条件表达式必须是宏表达式
    
    //双分支条件编译
    //#if 条件表达式
    //代码段1
    //#else
    //代码段2
    //#endif
    
    //#endif结束条件编译
    //#if,#else和C语言里的if else功能一样,但是时间开销不一样
    //if else会编译所有的代码,源码会较长,编译时间会较长
    //程序体积大,占用更多内存,运行时间长
    //#if,#else只编译符合条件的语句,有效减少被编译的语句,
    //缩短源码长度,缩短程序执行时间
    
    //多分支条件编译
    //#if 条件表达式1
    //代码段1
    //#elif 条件表达式2
    //代码段2
    //#elif 条件表达式3
    //代码段3
    //#elif 条件表达式4
    //代码段4
    //#else
    //代码段5
    //#endif
    
    //检测宏是否定义
    //#ifdef 宏定义
    //代码段1
    //#endif
    
    //#ifdef M 检测M这个宏是否定义,定义了就执行代码段1,没有定义就不执行任何操作
    //#ifdef一般用于开启某个功能
    
    //检测宏是否未定义
    //#ifndef 宏定义
    //代码段1
    //#endif
    //#ifndef M 检测M这个宏是否未定义,没有定义就执行代码段1,定义就不执行任何操作
    //#ifndef一般用于开启某个功能或者include 重包含排错
    
    //例如
    //#ifndef OPENS
    //#define OPENS
    ////定义函数或者执行操作,这样就不可能重复的定义函数或者操作了,因为如果已经定义了就不会执行这段代码
    //#endif
    
    
    
    
    #define LANGUA 'd'
    
    void main(){
        //双分支条件编译
    #if LANGUA=='e'//这里的条件表达式是宏表达式
        printf("我是字符e,求各位大哥放过小弟一马!
    ");
    #else
        printf("我就是老大,你们想造反吗!
    ");
    #endif
    
        //多分支条件编译
    #if LANGUA=='e'//这里的条件表达式是宏表达式
        printf("我是字符e,求各位大哥放过小弟一马!
    ");
    #elif LANGUA=='d'
        printf("我是字符d,是你们马大哥的小弟!
    ");
    #else
        printf("我就是老大,你们想造反吗!
    ");
    #endif
    
        //检测宏是否定义
    #define M
    #ifdef M
        system("color 3f");
    #endif
    
        //检测宏是否未定义
    #ifndef N
        system("title nihao");
    #endif
    
        system("pause");
    }

  • 相关阅读:
    K8S 本地 配置 Local PV 实践
    Filebeat 收集K8S 日志,生产环境实践
    K8S 上部署 Redis-cluster 三主三从 集群
    Kubernetes 用户流量接入方案
    给Nginx配置日志格式和调整日期格式
    唇亡齿寒,运维与安全
    Nginx记录用户请求Header到access log
    Kubernetes中利用Kubectl set 让Deployment更新镜像
    故障管理:故障定级和定责
    使用 Elastic 技术栈构建 Kubernetes全栈监控
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5196107.html
Copyright © 2020-2023  润新知