Q:.h頭文件中的ifndef/define/endif 的做用? spa
A:防止該頭文件被重複引用。編譯器
說明:編譯
有些頭文件重複包含只是增長了編譯工做的工做量,不會引發太大的問題,僅僅是編譯效率低一些。效率
有的會引發錯誤,好比在頭文件中定義了全局變量(雖然這種方式不被推薦,但確實是C規範容許的) 。變量
若是頭文件被循環包含,有的編譯器會智能處理,和只include一次同樣;有的會報錯,有的直接死鎖,致使編譯程序崩潰(這個只有很低級的編譯器纔會出如今幾乎看不到了)。循環
無論怎樣,用ifnde xxx #define xxx或者其餘方式避免頭文件重複包含,只有好處沒有壞處,是一個很好的習慣。引用