內部鏈結 (Internal Linkage)
當
.cc
檔中的定義不需要被外部檔案參考時,請透過將其放入無名名稱空間或宣告為static
來使其具有內部鏈結,但不要在.h
檔內使用任何這種結構。
定義
所有的宣告都可以透過放入無名名稱空間來使其具有內部鏈結。 函數與變數也可以透過宣告為 static
來實現內部鏈結。 這表示所宣告的內容無法被其他檔案存取。 如果其他檔案中宣告了同樣名稱的東西,那麼這兩者會被視為獨立的個體。
決定
我們鼓勵在 .cc
檔中對不需要外部引用的程式碼使用內部鏈結,但不要在 .h
檔中使用。
無名名稱空間的格式與具名名稱空間相同。 對於這種名稱空間的結尾註解,只要在名稱的部分留白即可:
namespace {
...
} // namespace