Chinaunix首页 | 论坛 | 博客
  • 博客访问: 859052
  • 博文数量: 1384
  • 博客积分: 27795
  • 博客等级: 上将
  • 技术积分: 16887
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-12 09:28
个人简介

只是心态,抓住机会。

文章分类

全部博文(1384)

文章存档

2014年(3)

2013年(403)

2012年(978)

分类: LINUX

2012-08-27 09:33:26

     
l              (preprocessor)

我 們 在 寫 程 式 的 時 候 , 常 常 會 碰 到 某 些 資 料 重 覆 使 用 或 是 某 些 程 式 片 段 因 特 定 的 條 件 下 須 放 棄 , 如 果 以 正 常 的 方 式 來 寫 作 程 式 , 可 能 會 增 加 無 謂 的 程 式 片 段 , 使 的 程 式 笨 重 不 堪 , 但 如 果 能 好 好 運 用 C 語 言 所 提 供 的 前 置 處 理 器 , 則 上 述 的 狀 況 將 改 善 許 多 . 這 個 功 能 並 非 C 語 言 本 身 的 格 式 , 但 仍 為 編 譯 程 式 所 能 接 受 . 對 前 置 處 理 器 的 解 釋 , 如 圖 所 示 , 因 為 它 是 在 程 式 編 譯 之 前 執 行 , 所 以 顧 名 思 義 稱 之 前 置 處 理 .

  l                   

<1> 前 置 處 理 器 的 格 式 如 下:

#前置處理器名稱    處理內容 

<2>                   .
<3> 
              ,          使    , 

              .

 

 

   前置處理器之敘述    

檔案的含入

#include

字串的置換/巨集定義

#define / #undef

   

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

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

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        #define(字     /    義)與 #undef<1>   #define  使  :

其 主 要 之 功 能 是 以 簡 單 的 名 稱 取 代 某 些 特 定 的 常 數 或 字 串 , 函 數 , 建 立 更 簡 單 更 易 懂 的 程 式 . 語 法 如 下 :

               #define 巨集名稱 常數或函式或字串 <2>   #undef  使  :

              #define       .

 

#undef  巨集名稱 

点击(此处)折叠或打开

  1. Example1:
  2.  
  3. #include < stdio.h >
  4. #define PI 3.14159
  5.          main()
  6.          {
  7.            printf("PI=%2.5f",PI);
  8.          }
  9.  
  10.  
  11. 執行結果 :
  12.  
  13.              PI=3.14159


点击(此处)折叠或打开

  1. Example2 :
  2.  
  3.           #include < stdio.h >
  4.           #define add(a,b) a+b
  5.           
  6.  
  7. void main(void)
  8.           {
  9.              int i,j,k;
  10.              i=2;
  11.              j=3;
  12.              k=add(i,j);
  13.  
  14.              printf("i+j=%d\n",k);
  15.           }
  16.  
  17. 執行結果 :
  18.  
  19.               i+j=5

 

点击(此处)折叠或打开

  1. Example3:
  2.  
  3. #include < stdio.h >
  4. #define pstring "This is my first C program.\n"
  5.           
  6.  
  7. void main(void)
  8.        {
  9.         printf(pstring,1);
  10.        }
  11.  
  12.  
  13.  
  14.  
  15.  
  16. 執行結果 :
  17.  
  18.       This is my first C program.


点击(此处)折叠或打开

  1. Example4 :
  2.  
  3.  #include < stdio.h >
  4.    #define compare(a,b) \
  5.             if ( a > b ) \
  6.               printf("a > b"); \
  7.             else \
  8.               if ( a < b ) \
  9.                 printf("a < b");\
  10.               else \
  11.                 printf("a = b");
  12.  
  13.       void main(void)
  14.           {
  15.              int a,b;
  16.              a=5;
  17.              b=10;
  18.              compare(a,b);
  19.           }
  20.  
  21.    執行結果 :
  22.               a < b


点击(此处)折叠或打开

  1. Example5 :
  2.   
  3.  #include < stdio.h >
  4.  #define TURBOC
  5.    
  6. void main(void)
  7.     {
  8.      #ifdef TURBOC
  9.         printf("Borland C compiler.\n");
  10.      #endif
  11.  
  12.      #undef TURBOC
  13.  
  14.      #ifndef TURBOC 为真
  15.          printf("MircoSoft C compiler.\n");
  16.      #endif
  17.     }
  18.  
  19.     執行結果 :
  20.         Borland C compiler.
  21. MircoSoft C compiler.

l               

<1> 條 件 式 的 編 譯, 此 用 法 的 最 大 特 色 在 於 其 敘 述 不 僅 可 以 放 在 程 式 的 頂 端 , 亦 可 將 其 敘 述 放 置 於 程 式 中 . 以 下 所 列 (1) ,(2) ,(3) 項 為 條 件 式 編 譯 的 成 員 .

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

<2>                               

   if ... then ... else        ,   使            .



点击(此处)折叠或打开

  1. Example1:
  2.  
  3.    #include < stdio.h >
  4.    #define value 99
  5.  
  6.     void main(void)
  7.     {
  8.       #if value < 100
  9.         printf("value < 100");
  10.       #else
  11.         printf("value >= 100");
  12.       #endif
  13.     }

点击(此处)折叠或打开

  1. 執行結果 :
  2.  
  3.       value < 100
  4. Example2:
  5.  
  6.       #include < stdio.h >
  7.       #define value 100
  8.         
  9. void main(void)
  10.    {
  11.     #if value < 100
  12.        printf("value < 100");
  13.      #elif value > 100
  14.          printf("value > 100");
  15.      #else
  16.          printf("value = 100");
  17.      #endif
  18.   }
  19.  
  20.  執行結果 :
  21.  
  22.           value = 100

 

  

阅读(1172) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~