• 条件编译


    无值宏定义

    定义宏的时候不指定一个值得时候就被称为无值宏定义,一般无值宏会使用在条件编译当中:

    #define __MAIN_H__ 
    #define __TYPE_H__
    

    注意
    对于无值宏来说我们只能判断它是否被定义,而无法判断他的值

    保护宏

     在一个工程中,为了防止某个头文件被多次包含,就会使用保护宏,防止预处理时被多次展开,造成重定义的错误。

    #ifndef __MAIN_H__ 
    #define __MAIN_H__    
        ......用户代码.......
    #endif 
    

    注意:
    保护宏必须加在最前面,最后用#endif结尾。

    条件编译

     通过条件来判断某一段代码是否需要编译。

    #ifdef   DEBUG    // 如果宏定义条件成立,则这段代码需要编译,否则就不需要    
        printf("%d__%s__%s
    ", __LINE__ , __FUNCTION__, __FILE__);    printf("%d__%s__%s
    ", __LINE__ , __FUNCTION__, __FILE__); 
    #endif 
    
    #ifndef    DEBUG    // 如果宏没有定义条件成立,则这段代码需要编译  
        printf("%d__%s__%s
    ", __LINE__ , __FUNCTION__, __FILE__); 
    #else               // 如果宏有定义则将编译这一条    
        printf("%d__%s__%s
    ", __LINE__ , __FUNCTION__, __FILE__);
    #endif 
    

    条件编译的使用场景

     可以在编译程序的时候在编译命令后面增加一个宏的定义。

    gcc demo.c -o demo -DDEBUG 
    

    注意:
    在以上并以命令中 加上 -D 意味着定义一个 #define DEBUG 宏,
    通过编译语句来定义某个宏,来决定代码当中某一部分代码块是否需要编译。

  • 相关阅读:
    ubuntu下安装JDK(复制)
    idea的ssm搭建(复制)
    linux常用命令(复制)
    Ubuntu安装nginx(复制)
    win7分盘(复制)
    mysql环境变量配置(复制)
    mysql的下载及配置(复制1)
    java环境变量的配置
    Windows 右键添加「cmd 打开」
    快速开启Windows 的各种任务及 bat(ch)脚本
  • 原文地址:https://www.cnblogs.com/ding-ding-light/p/14094633.html
Copyright © 2020-2023  润新知