C++ 中 .cc 和 .cpp 副檔名之間的區別
如果你曾經在 Linux 和 Windows 等不同系統上使用過 C++,那麼你一定遇到過 .cc
和 .cpp
副檔名。在網際網路上,你會發現許多訊息來源說這些副檔名之間沒有區別,對此確實存在很多混淆。
在本文中,我們將討論這些 C++ 副檔名的細微差別以及它們之間的區別。但在我們開始比較這兩個副檔名之前,讓我們首先收集有關這兩個副檔名基礎的資訊。
.cpp
副檔名
副檔名為 .cpp
的檔案是 C++ 原始碼檔案。這些檔案也稱為實現檔案,因為它們具有標頭檔案中宣告的方法的定義。
該檔案旨在將 C++ 專案的介面與實現分開。這樣,成員函式的所有宣告都在標頭檔案中進行,並且相同的詳細資訊儲存在 .cpp
檔案中。
我們可以將 .cpp
檔案用作編寫 C++ 應用程式的簡單檔案或用作類實現的檔案。在物件導向程式設計的情況下,.cpp
檔案用於類定義。
為此,類的所有資料成員和函式都在標頭檔案中宣告。該檔案引用檔案開頭的 include
語句中的標頭檔案。
.cpp
檔案與 Windows 作業系統相容;使用一些外部程式,它們也適用於 Linux 和 Mac 作業系統。
.cc
副檔名
副檔名為 .cc
的檔案是 C++ 原始碼檔案。這可以包含單個程式以及編譯成機器程式碼的函式。
這些檔案與 Mac、Linux 和 Windows 作業系統相容,並受到這些作業系統上的各種程式的支援。
有關副檔名的完整列表,請參閱 this 文件。
C++ 中 .cc
和 .cpp
副檔名之間的相似之處
.cc
和 .cpp
副檔名並不相同,但它們是相關的,因為它們都用作 C++ 副檔名。對於編譯器,兩者之間沒有區別。
C++ 編譯器可以自動處理所有 C++ 擴充套件而不會造成任何麻煩。GNU GCC 編譯器將所有這些副檔名視為 C++ 檔案:.cc
、.c
、.c++
、.cp
、.cxx
、.cpp
、.CPP
,並始終使用 C++ 編譯來編譯它們,而我們不必使用 GCC 呼叫它。
雖然 .cpp
是推薦的 C++ 副檔名,但它更多的是你決定使用的個人偏好。它也可能取決於專案的整個團隊,幾乎不會產生任何差異。
如果專案與開源相關,最好使用社群中常見的 .cpp
。這就是這兩個副檔名是如何相關的。
現在讓我們深入探討期待已久的討論:.cc
和 .cpp
副檔名之間的區別。
C++ 中 .cc
和 .cpp
副檔名之間的區別
.cc
和 .cpp
副檔名之間的差異可以根據各種因素進行總結。其中包括工作環境、作業系統、舊約定以及這些副檔名的來源。
以下是這兩個副檔名之間的所有區別點:
-
不同的環境支援不同的副檔名。
.cc
副檔名主要由 Unix、GNU C++、Clang、Microsoft Visual C++ 和 Metrowerks CodeWarrior 支援。另一方面,GNU C++、Clang、Digital Mars、Borland C++、Watcom、Microsoft Visual C++ 和 Metrowerks CodeWarrior 支援
.cpp
副檔名。這種相容性區別有助於跨平臺識別並使程式碼具有可移植性。 -
作業系統在這裡也扮演著重要的角色。對於 Unix 和 Linux,約定是
.cc
,而對於 Windows,它是.cpp
。你將看到
.cc
副檔名更常用於 Linux/Unix 系統,而.cpp
檔案主要用於 Windows,因為它會導致.C
副檔名出現問題。另一方面,對於 macOS,Xcode 首選.cpp
副檔名。 -
這兩種檔案型別的起源也有一些差異。最初,
.cpp
被用作 C++ 檔案的約定,因為它代表 C plus plus,用作 C++ 副檔名聽起來合乎邏輯。由於當時
cpp
已經作為 C 前處理器存在,所以有可能將.cpp
檔案與.i
檔案混淆(cpp
呼叫的擴充套件)。所以最初,副檔名改為.cc
。隨著時間的推移,由於同義詞的縮寫,只有
.cpp
變得更受歡迎。 -
毫無疑問,與 Linux 和 Unix 相比,Windows 是迄今為止最常用和流行的作業系統。由於 Windows 在 Linux 和 Unix 系統上的普及,
.cpp
副檔名更常用。 -
另一個可以區分這兩個副檔名的外部因素是程式碼庫的使用。例如,Google 使用
.cc
副檔名,而 LLVM libc++ 使用.cpp
副檔名。
まとめ
在本文中,我們瞭解了 .cc
和 .cpp
副檔名如何用於不同平臺和作業系統(如 Unix、Mac 和 Windows)上的 C++ 檔案。我們還討論了這兩個副檔名的不同之處以及它們之間的關係。
同樣,完全由開發人員根據需要選擇任何副檔名。這就是本文的全部內容。