c语言的条件编译

  条件编译指令将决定那些代码被编译,而哪些是不被编译的。可以根据表达式的值或者某个特定的宏是否被定义来确定编译条件。

一.#if、#else、#elif和#endif指令 

  (1)  #if 表达式  

                 语句段1  

           [#else  

                 语句段2]  

            #endif



  代码实例:

       #include<stdio.h>

       #include<stdio.h>

         #if VAL_MIN < INT_MIN || INT_MAX  < VAL_MAX

       #error value out of range             //表示输出一行错误提示

       #endif


    如果表达式为真,就编译语句段1,否则编译语句段2  

 (2)  #if 表达式1  

                语句段1  

           #elif 表达式2  

                语句段2  

           #else  

                 语句段3  

           #endif 

 

          实例代码:

            #include<stdio.h>

           #include<limits.h>

           #if VAL_MIN < INT_MIN || INT_MAX < VAL_MAX

                  typedef  long Val_t;               //类型重定义

           #else

                  typedef int  Val_t;

           #endif


    如果表达式1真,则编译语句段1,否则判断表达式2;如果表达式2为真,则编译语句段2,否则编译语句段3

二. #ifdef和#ifndef  

(1)#ifdef的一般形式:

  

          #ifdef 宏名  

                   语句段  

         #endif 

 

        作用:如果在此之前已定义了这样的宏名,则编译语句段。  (2)#ifndef的一般形式:

  

         #ifndef 宏名  

                   语句段  

         #endif 

 

         作用:如果在此之前没有定义这样的宏名,则编译语句段。  

          #else可以用于#ifdef和#ifndef中,但#elif不可以。  

三. #error  指令将使编译器显示一条错误信息,然后停止编译。

  

四. #line  指令可以改变编译器用来指出警告和错误信息的文件号和行号。

 

五. #pragma  指令没有正式的定义。编译器可以自定义其用途。典型的用法是禁止或允许某些烦人的警告信息。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值