zoukankan      html  css  js  c++  java
  • 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");
    }

  • 相关阅读:
    linux 分区格式查看
    MDL原理理解
    linux oracle配置开机启动
    oracle em手动配置
    java字符编码详解
    linux oracle 配置监听器
    mysql 生成时间序列数据
    R实用小技巧
    python将文件夹下的所有csv文件存入mysql和oracle数据库
    遗传算法求解最优化问题
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5196107.html
Copyright © 2011-2022 走看看