码迷,mamicode.com
首页 > 编程语言 > 详细

C语言的条件编译

时间:2017-10-25 00:47:02      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:class   条件   信息   nbsp   err   fine   简写   color   文件   

条件编译是通过预编译指令来实现的,主要方法有:

1、#if, #elif, #else, #endif


 #if 条件1
     代码段1
   #elif 条件2
   代码段2
   ...
   #elif 条件n
     代码段n
   #else
    代码段n+1
   #endif

#if的含义是,如果#if后面的常量表达式为true,则编译它所控制的代码,如条件1成立时就代码段1,条件1不成立再看条件2是否成立,如果条件2成立则编译代码段2,否则再依次类推判断其它条件,如果条件1-N都不成力则会编译最后的代码段n+1.

 

2、#ifdef, #else, #endif 或 #ifndef, #else, #endif

  #ifdef: 表示“如果有定义这个宏”

  #ifndef: 表示“如果没有定义这个宏”

 

 #ifdef windows   //如果有定义windows这个宏,则执行代码段1,否则执行代码段2
    代码段1
   #else
    代码段2
  #endif

  #ifndef windows  //如果没有定义windows这个宏,则执行代码段1,否则执行代码段2
    代码段1
  #else
    代码段2
  #endif

 

3、通过宏函数defined(macro_name)

  参数为宏名(无需加""),如果该macro_name定义过则返回真,否则返回假,用该函数则可以写比较复杂的条件编译指令如


 #if defined(macro1) || (!defined(macro2) && defined(macro3))
   ...
   #else
   ...
  #endif

 

    指令         用途
    #           空指令,无任何效果
    #include    包含一个源代码文件
    #define     定义宏
    #undef      取消已定义的宏
    #if         如果给定条件为真,则编译下面代码
    #ifdef      如果宏已经定义,则编译下面代码
    #ifndef     如果宏没有定义,则编译下面代码
    #elif       如果前面的#if给定条件不为真,当前条件为真,则编译下面代码,其实就是else if的简写
    #endif      结束一个#if……#else条件编译块
    #error      停止编译并显示错误信息

 

C语言的条件编译

标签:class   条件   信息   nbsp   err   fine   简写   color   文件   

原文地址:http://www.cnblogs.com/linuxAndMcu/p/7726155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!