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

[技術文章] #if、#ifdef 等的使用 [複製連結]

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

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

狀態︰ 離線
跳轉到指定樓層
1
發表於 2012-7-20 09:59:56 |只看該作者 |倒序瀏覽
如果我們在一檔案欲 include 一檔頭檔 file1.h ,又想避免在同一檔案宣告兩次相同的東西,例如:


檔案 file1.h 含 extern int size
檔案 file2.h 含 #include "file1.h"
檔案 file3.h 含 #include "file1.h"

檔案 file.c 含 #include "file2.h" 及 #include "file3.h"
則在檔案 file.c 內,變數 size 重複宣告了兩次而產生錯誤。
欲避免這種情況發生,每個 #include "file1.h" 指令, 我們可以改變為如下指令:

      
      #if !define(FILE1)
      #define FILE1 "file1.h"
      #include FILE1
      #endif

或是
      #ifndef FILE1
      #define FILE1 "file1.h"
      #include FILE1
      #endif

註:

如果一個辨識名稱 X 沒有被 define 過, 則 define(X) 之值為 0, 或者 ifndef X 為真值。
當 file2.h 與 file3.h 都含上述指令, 如此一來 file1.h 僅能一次被加入 file.c 而不致於產生衝突。
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

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


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

GMT+8, 2024-4-29 01:39

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