導航:首頁 > 文件管理 > c語言如何防止頭文件重復調用

c語言如何防止頭文件重復調用

發布時間:2025-09-30 06:18:58

⑴ C語言頭文件中定義結構體的問題

C語言程序設計中,為防止頭文件在同一編譯單元被重復引用,常引入#ifndef宏來進內行保護,如:頭文件容my_head.h

#ifndef_MY_HEAD_H_//如果沒有定義宏_MY_HEAD_H_
#define_MY_HEAD_H_//則,定義該宏名
//以下是被保護的代碼
//進行相應的全局變數和結構體類型定義
typedefstructstu{
inta;
intb;
}STU;
#endif//宏判斷結束

這樣,當整個代碼中,多次引用這個my_head.h時,只有一次是生效的,系統編譯時,如果檢查宏_MY_HEAD_H_ 已經定義,就不會再進入被保護的代碼區了。

PS: 宏名,一般是與頭文件名相同,只是把字母全大寫,前後加上下劃線(_)

⑵ 關於自定義頭文件在多個文件中引用時提示重復定義的問題(C語言)

#ifndef identifier_h
#define identifier_h
....
#endif
這套條件編譯是為了防止同一個.c文件中包含多個相同.h文件的(比如專有一個.c文件包含了屬a.h,a.h又包含了b.h,那麼當你在這個.c文件中同時包含了a.h和b.h時,因為有上面的條件編譯的關系而不會出錯)。因為編譯器在編譯的時候是按照.c文件為單位編譯的,每個.c文件編譯成.o文件(linux系統)或者.obj(windows系統),然後再將這些.o文件鏈接起來,最後與運行庫鏈接形成可執行文件(elf或exe文件)。

你在兩個.c文件中包含了同一個.h文件。這根本和條件編譯沒什麼關系。你在.h文件中定義了全局變數a, b, c。那麼就表示你兩個.c文件中,每個.c文件中都有這樣的全局變數定義:int a, b, c;當每個.c文件單獨編譯當然沒有問題,但是當它們鏈接起來的時候就出現問題了:兩個.c文件中都有變數a b c,所以當然是重復定義啊。問題是出在鏈接的時候的。

閱讀全文

與c語言如何防止頭文件重復調用相關的資料

熱點內容
網路中常用的傳輸介質 瀏覽:518
文件如何使用 瀏覽:322
同步推密碼找回 瀏覽:865
樂高怎麼才能用電腦編程序 瀏覽:65
本機qq文件為什麼找不到 瀏覽:264
安卓qq空間免升級 瀏覽:490
linux如何刪除模塊驅動程序 瀏覽:193
at89c51c程序 瀏覽:329
怎麼創建word大綱文件 瀏覽:622
裊裊朗誦文件生成器 瀏覽:626
1054件文件是多少gb 瀏覽:371
高州禁養區內能養豬多少頭的文件 瀏覽:927
win8ico文件 瀏覽:949
仁和數控怎麼編程 瀏覽:381
項目文件夾圖片 瀏覽:87
怎麼在東芝電視安裝app 瀏覽:954
plc顯示數字怎麼編程 瀏覽:439
如何辨別假網站 瀏覽:711
寬頻用別人的賬號密碼 瀏覽:556
新app如何佔有市場 瀏覽:42

友情鏈接