內部鏈結 (Internal Linkage)

.cc 檔中的定義不需要被外部檔案參考時,請透過將其放入無名名稱空間或宣告為 static 來使其具有內部鏈結,但不要在 .h 檔內使用任何這種結構。

定義

所有的宣告都可以透過放入無名名稱空間來使其具有內部鏈結。 函數與變數也可以透過宣告為 static 來實現內部鏈結。 這表示所宣告的內容無法被其他檔案存取。 如果其他檔案中宣告了同樣名稱的東西,那麼這兩者會被視為獨立的個體。

決定

我們鼓勵在 .cc 檔中對不需要外部引用的程式碼使用內部鏈結,但不要在 .h 檔中使用。

無名名稱空間的格式與具名名稱空間相同。 對於這種名稱空間的結尾註解,只要在名稱的部分留白即可:

namespace {
...
} // namespace