c語言中關於標頭檔案重複包含

2021-07-25 16:01:16 字數 841 閱讀 5883

1、如果標頭檔案a包含標頭檔案c,同時標頭檔案b也包含標頭檔案c,而寫的程式中包含了標頭檔案a,標頭檔案b,然後在編譯的時候就會出現標頭檔案c重複包含的錯誤

這個錯誤 只要在自己寫的標頭檔案中這樣寫

#ifndef x   //x為你的識別符號,保持唯一,可以長點,比如 #ifndef _include_******_h_  

#define x

//這裡是你的標頭檔案

#endif

上面的x可以隨便取名(可以用來「裝」標頭檔案,所以x一般取名為大寫的標頭檔案的名字,只不過把」.」換成「_」),只要保證#ifndef和#define後面是同乙個x就可以了,只是乙個標識而已。翻譯成中文就是,如果已經#define x了,後面的就不執行了。這樣在同乙個c檔案中,保證可以只#include乙個標頭檔案,避免「在同乙個c檔案中對乙個標頭檔案include兩次」的錯誤(第一次包含了該標頭檔案後,就已經#define 了一次x,第二次包含時會遇到「#ifndef x」的判斷,既然已經定義,只好對這個判斷說yes了,後面的不再執行,

標頭檔案就不會再加進去)。

2、寫的**裡, 標頭檔案a需要包含標頭檔案b,標頭檔案b需要包含標頭檔案c,這種情況#include a就沒有問題,不會出現重複包含的錯誤

注意:這裡的#ifndef預處理是要解決在同乙個c檔案中包含了兩次同乙個標頭檔案的錯誤,而在不同的c檔案中是可以包含同乙個標頭檔案的。

如果不用#ifndef來對頭檔案做標記,又想「一勞永逸」地解決問題,不需要擔心重複包含,則就要形成自覺,不要在標頭檔案裡定義變數或函式,只宣告,這樣多次include這個標頭檔案時包含的都是宣告,就沒有問題,因此c語言裡是允許多次宣告同乙個函式或變數的。

標頭檔案重複包含

如果某個標頭檔案被多次包含,則在vc編譯器中編譯,會丟擲 重複定義 錯誤。為了避免同乙個檔案被重複包含多次,c 提出了2種解決方案。1 ifndef some file h define some file h endif 在檔案末端 2 pragma one ifndef define endif...

標頭檔案重複包含

如果某個標頭檔案被多次包含,則在vc編譯器中編譯,會丟擲 重複定義 錯誤。為了避免同乙個檔案被重複包含多次,c 提出了2種解決方案。1 ifndef some file h define some file h endif 在檔案末端 2 pragma one ifndef define endif...

C 防止標頭檔案重複包含

1.預編譯階段,把所有 include h 用.h的內容來替換了,所以之後就沒有.h了所有.h的內容都已經包含進了需要它們的.cpp中 2.生成最後的exe檔案是由編譯 鏈結兩步完成的,編譯是源 生成obj二進位制目標檔案的過程,注意乙個源 檔案生成乙個obj檔案,例如a.cpp中可以有乙個void...