SOGO論壇
  登入   註冊   找回密碼
查看: 494|回覆: 0
列印 上一主題 下一主題

[技術文章] #include 的使用 [複製連結]

Rank: 11Rank: 11Rank: 11Rank: 11

熱心參予論壇活動及用心回覆主題勳章 數位硬體勳章

狀態︰ 離線
跳轉到指定樓層
1
發表於 2012-7-20 09:59:25 |只看該作者 |倒序瀏覽
C 程式的設計,不僅可以用模組化的方式,以函數來表現,亦可將程式碼依其不同的目的與功能,呈現在不同的檔案中。為了程式碼的一致性,如常數,巨集指令,全域(global)變數的宣告(含 extern,將於第九章說明)一些函數的宣告(僅列出函數的標題 heading)等,都放在一檔頭檔 .h,當然不見的是要以 .h 當作副檔名,不過,一般都是以 .h 來當作 include 檔的副檔名,再以指令 #include 方式將該檔 加入即可。指令 #include 的宣告方式如下

#include <filename>

#include "filename"
經過編譯器前置處理後,含指令 #include 這行則由該檔 filename 來代替,如果 filename 是由 <,> 所含,則編譯器會到 include 目錄下去找該檔或至預先所定的目錄去找。

例 6: 假設檔案 file1.h 的內容如下:

      #define MAXSIZE 100
      extern int size;
      int f(int x);

假設檔案 file2.c 的內容如下:
      #include "file1.h"
      main()
      {  int A[MAXSIZE],i,sum;
         for(i=0;i < size;i++)
         sum=sum+f(i);
      }

又假設 file1.h 與 file2.c 都在同一目錄下 則經過前置處理, file2.c 就先變成
      #define MAXSIZE 100
      extern int size;
      int f(int x);
      main()
      { int A[MAXSIZE],i,sum;
        for(i=0;i < size;i++)
        sum=sum+f(i);
      }

經過前置處理完成後,file2.c 就變成
    extern int size;
    int f(int x);
    main()
    { int A[100],i,sum;
      for(i=0;i < size;i++)
      sum=sum+f(x);
    }

註:

檔頭檔(.h 檔)亦可含 #include 指令而形成階層式的架構。
一個檔案可能會含有相當多 #include 的指令,有時會有重複重宣告情形而產 生錯誤。該現象可以參考 8.3 節的方式來避免。
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-4-28 09:31

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部