關於 #include 真正的涵義 |
答題得分者是:syntax
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
各位大大好:
小弟請教一個基本問題 假設我有三個.h檔 [code cpp] Unit1.h Unit2.h number.h [/code] 首先我先讓 Unit1.h #include "number.h" 我的問題是 今天我使用 Unit2.h #include "Unit1.h" 為何沒辦法直接使用 number.h 內的變數 因為如果 Unit1.h 和 Unit2.h 同時 #include"number.h" 程式會發出警告 我如果要讓 number.h 內的變數 可以讓 Unit1.h 和 Unit2.h 使用 我該怎麼宣告會比較好?? 請各位賜教了!!
------
恩... |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
*.h 是用來宣告用的,對於 include 方,是告知外來,也就是 external,external 類的,直接導 link
如果你在宣告時給定其直,就會變成「定義」,有就是建立本體,但一個變數,是無法建立兩個或以上的本體 宣告,可以宣告無數次,定義,只能有一次 如果你的 *.h 遵守這個原則,就不會發生你說的該狀況 如果要在 *.h 內定義,那不就跟 *.c 相同,又何必分 *.h *.c,都用 *.c 來完成,但這樣必須在每一個 *.c 檔案內做外部宣告 通常只用在小型程式,不需要為 *.h 而建立 *.h int i; <--- 宣告 int i; i = 10; <- 定義 int i = 10; <- 定義 如果檢查的嚴格,外部變數或許要用 extern,單看編譯器規則 extern int i; 沒記錯 extern int i = 10; 是不行的,不能定義外部來源 (這部分有點忘記) 建議你基礎的書,要看,同時要看早期的書 (圖書館很多),才有講,現在的書,都是 RAD 類的懶人用書 ===================引 用 istillloving 文 章=================== 各位大大好: 小弟請教一個基本問題 假設我有三個.h檔 [code cpp] Unit1.h Unit2.h number.h [/code] 首先我先讓 Unit1.h #include "number.h" 我的問題是 今天我使用 Unit2.h #include "Unit1.h" 為何沒辦法直接使用 number.h 內的變數 因為如果 Unit1.h 和 Unit2.h 同時 #include"number.h" 程式會發出警告 我如果要讓 number.h 內的變數 可以讓 Unit1.h 和 Unit2.h 使用 我該怎麼宣告會比較好?? 請各位賜教了!!
編輯記錄
syntax 重新編輯於 2010-01-09 08:56:09, 註解 無‧
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
非常感謝您的回答
C和C 深层探索(PDF)http://www.myebook.cn/ebook/dnwl/cxsj/c/2008/058577418311.htm解壓縮密碼要用手打 ===================引 用 syntax 文 章=================== *.h 是用來宣告用的,對於 include 方,是告知外來,也就是 external,external 類的,直接導 link 如果你在宣告時給定其直,就會變成「定義」,有就是建立本體,但一個變數,是無法建立兩個或以上的本體 宣告,可以宣告無數次,定義,只能有一次 如果你的 *.h 遵守這個原則,就不會發生你說的該狀況 如果要在 *.h 內定義,那不就跟 *.c 相同,又何必分 *.h *.c,都用 *.c 來完成,但這樣必須在每一個 *.c 檔案內做外部宣告 通常只用在小型程式,不需要為 *.h 而建立 *.h int i; <--- 宣告 int i; i = 10; <- 定義 int i = 10; <- 定義 如果檢查的嚴格,外部變數或許要用 extern,單看編譯器規則 extern int i; 沒記錯 extern int i = 10; 是不行的,不能定義外部來源 (這部分有點忘記) 建議你基礎的書,要看,同時要看早期的書 (圖書館很多),才有講,現在的書,都是 RAD 類的懶人用書 ===================引 用 istillloving 文 章=================== 各位大大好: 小弟請教一個基本問題 假設我有三個.h檔 [code cpp] Unit1.h Unit2.h number.h [/code] 首先我先讓 Unit1.h #include "number.h" 我的問題是 今天我使用 Unit2.h #include "Unit1.h" 為何沒辦法直接使用 number.h 內的變數 因為如果 Unit1.h 和 Unit2.h 同時 #include"number.h" 程式會發出警告 我如果要讓 number.h 內的變數 可以讓 Unit1.h 和 Unit2.h 使用 我該怎麼宣告會比較好?? 請各位賜教了!!
------
恩...
編輯記錄
istillloving 重新編輯於 2010-01-09 10:46:05, 註解 無‧
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
如果是要說書的話,這一本絕對值得一讀,細讀 C++primer_plus_fifth_edition.pdf
google this "C primer_plus_fifth_edition.part1.rar" 不知道這連結還能撐多久 ===================引 用 istillloving 文 章=================== 非常感謝您的回答 C和C 深层探索(PDF)http://www.myebook.cn/ebook/dnwl/cxsj/c/2008/058577418311.htm解壓縮密碼要用手打 ===================引 用 syntax 文 章=================== *.h 是用來宣告用的,對於 include 方,是告知外來,也就是 external,external 類的,直接導 link 如果你在宣告時給定其直,就會變成「定義」,有就是建立本體,但一個變數,是無法建立兩個或以上的本體 宣告,可以宣告無數次,定義,只能有一次 如果你的 *.h 遵守這個原則,就不會發生你說的該狀況 如果要在 *.h 內定義,那不就跟 *.c 相同,又何必分 *.h *.c,都用 *.c 來完成,但這樣必須在每一個 *.c 檔案內做外部宣告 通常只用在小型程式,不需要為 *.h 而建立 *.h int i; <--- 宣告 int i; i = 10; <- 定義 int i = 10; <- 定義 如果檢查的嚴格,外部變數或許要用 extern,單看編譯器規則 extern int i; 沒記錯 extern int i = 10; 是不行的,不能定義外部來源 (這部分有點忘記) 建議你基礎的書,要看,同時要看早期的書 (圖書館很多),才有講,現在的書,都是 RAD 類的懶人用書 ===================引 用 istillloving 文 章=================== 各位大大好: 小弟請教一個基本問題 假設我有三個.h檔 [code cpp] Unit1.h Unit2.h number.h [/code] 首先我先讓 Unit1.h #include "number.h" 我的問題是 今天我使用 Unit2.h #include "Unit1.h" 為何沒辦法直接使用 number.h 內的變數 因為如果 Unit1.h 和 Unit2.h 同時 #include"number.h" 程式會發出警告 我如果要讓 number.h 內的變數 可以讓 Unit1.h 和 Unit2.h 使用 我該怎麼宣告會比較好?? 請各位賜教了!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |