什麼是預處理器?
答:在真正的編譯開始之前由編譯器調用的獨立程序。預處理器可以刪除註釋、包含其他文件以及執行宏(宏macro是一段重複文字的簡短描寫)替代。
如何避免多重包含?
答:
#ifndef SALESITEM_H
#define SALESITEM_H
測試 SALESITEM_H 預處理器變量是否未定義。如果 SALESITEM_H 未定義,
那麼 #ifndef 測試成功,跟在 #ifndef 後面的所有行都被執行,直到發現
#endif。相反,如果 SALESITEM_H 已定義,那麼 #ifndef 指示測試爲假,該指
示和 #endif 指示間的代碼都被忽略。
爲什麼要是#ifndef #define?
答:頭件的中的#ifndef,這是一個很關鍵的東西。比如你有兩個C文件,這兩個C文件都include了同一個頭文件。而編譯時,這兩個C文件要一同編譯成一個可運行文件,於是問題來了,大量的聲明衝突。