九、C 的 前 置 处 理 器

本文详细介绍了C语言中的前置处理器功能及其使用方法,包括档案的含入、字符串的置换、宏定义以及条件编译等内容。
 

C

l        l          (preprocessor)

, 使 , 如果 , , 使 , 好好 C , . C 的格 , . , , 之前 , .


  

    
    
 
   

      
     
  
     
  
     
  
     
  
     
  
     
  
     
  
     
  
     
  
     
  
     
  
     
 
   

    
    
 
    

  
  

    
    

    
     

l        l          

<1> 下:

#前置处理器名称    处理内容
    
 
    

<2> .
<3>
, 使 , .

 

   前置处理器之叙述    

档案的含入

#include

字符串的置换/宏定义

#define / #undef

#if .... #elif .... #else .... #endif

#ifdef (#ifndef) .... #else .... #endif

l        l        #include(檔 入)

, 使 . :

 

     <1> #include "文件名称" : 此表示系统将会到目前的目录 (路径 )
     
                               下寻找所指定的档案 ,如果找不到 ,
    
                               会去系统设定的目录底下寻找 .
     
 
    
     <2> #include <文件名称> : 此表示系统将会到系统设定的目录底下
    
                               寻找所指定的档案 .
     
 
    
 
    
Example:
         
 
          
#include < stdio.h >
         
  #include "def.h"
         
  
         
main()
         
  {
         
            printf("PI=%2.5f/n",PI);
         
            printf("a+b=%d/n",a+b);
         
 }
         
 
        
 
        
-- def.h 的档案内容 --
         
 
        
         #define PI  3.14159
         
         #define a   10
         
         #define b   20
         
   ----------------------
         
 
        
      执行结果 :
         
 
        
             PI=3.14159
         
             a+b=30
         

l        l        #define(字 / 义)与 #undef

<1> #define 使 :

其主 , , 简单 . :


               #define 宏名称 常数或函式或字符串
    
 
    

<2> #undef 使 :

#define .

 

#undef  宏名称
    
 
    
Example1:
          
 
         
#include < stdio.h >
         
#define PI 3.14159
         
         main()
         
         {
         
           printf("PI=%2.5f",PI);
         
         }
         
 
       
 
       
执行结果 :
        
 
       
             PI=3.14159
        
Example2 :
          
 
        
          #include < stdio.h >
         
          #define add(a,b) a+b
         
          
         
 
        
void main(void)
          
          {
         
             int i,j,k;
         
             i=2;
         
             j=3;
         
             k=add(i,j);
         
 
        
             printf("i+j=%d/n",k);
         
          }
         
 
        
执行结果 :
          
 
       
              i+j=5
        
 
          
Example3:
        
 
        
#include < stdio.h >
         
#define pstring "This is my first C program./n"
         
          
         
 
        
void main(void)
          
       {
         
        printf(pstring,1);
         
       }
         
 
        
 
        
 
          
 
          
 
          
执行结果 :
          
 
       
      This is my first C program.
        
Example4 :
          
 
         
 #include < stdio.h >
         
   #define  compare(a,b)      /
         
            if ( a > b )        /
         
              printf("a > b");  /
         
            else                /
         
              if ( a < b )      /
         
                printf("a < b");/
         
              else              /
         
                printf("a = b");
         
 
        
      void main(void)
          
          {
         
             int a,b;
         
             a=5;
         
             b=10;
         
             compare(a,b);
         
          }
         
 
        
   执行结果 :
         
              a < b
          
Example5 :
          
  
         
 #include < stdio.h >
         
 #define TURBOC
         
   
         
void main(void)
         
    {
         
     #ifdef TURBOC
         
        printf("Borland C compiler./n");
         
     #endif
         
 
        
     #undef TURBOC
         
 
        
     #ifndef TURBOC
         
         printf("MircoSoft C compiler./n");
         
     #endif
         
    }
         
 
        
    执行结果 :
         
        Borland C compiler.
        
MircoSoft C compiler.
          

l          l         

<1> 条件 , , 亦可 . (1) ,(2) ,(3) .


                    (1) #if  #endif
     
                    (2) #else / #elif
     
                    (3) #ifdef  #ifndef
     
 
    

<2> , if ... then ... else , 使 .


Example1:
          
 
        
   #include < stdio.h >
         
   #define value  99
         
 
        
    void main(void)
          
    {
         
      #if value < 100
         
        printf("value < 100");
         
      #else
         
        printf("value >= 100");
         
      #endif
         
    }
         
 
        
  
         
 
        
执行结果 :
          
 
         
      value < 100
        
Example2:
          
 
        
      #include < stdio.h >
         
      #define value  100
         
        
         
void main(void)
          
   {
         
    #if value < 100
         
       printf("value < 100");
         
     #elif value > 100
         
         printf("value > 100");
         
     #else
         
         printf("value = 100");
         
     #endif
         
  }
         
 
        
 执行结果 :
          
 
       
          value = 100
        
 
        

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值