問題來源:
加入你有一個C源文件,它包含了多個頭文件,比如頭文件A和頭文件B,而頭文件B又包含頭文件A
結果:
該源文件包含了頭文件A兩次,這時,編譯時會報大量的重復定義錯誤。
解決方案:
使用宏定義
在自定義的頭文件開頭寫上:
#ifndef_HEADFILENAME_H
#define_HEADFILENAME_H
后文件結尾寫上
#endif
語句“#ifndef_HEADFILENAME_H"
也是宏定義的一種,意為"if not defined headfilename.h",就是說
如果沒有定義文件名為 headfilename.h的頭文件,就會執行該語句和#endif直接的代碼
如果定義了,則不會執行該語句和#endif直接的代碼
注:#ifndef_HEADFILENAME_H必須和#endif配合使用