我已經看到C++代碼保存爲.cc
和.cpp
文件。兩者有什麼不同?C++代碼文件擴展名? .cc vs .cpp
Google style guide似乎暗示.cc
,但沒有提供解釋。
我主要關心Linux系統上的程序。
我已經看到C++代碼保存爲.cc
和.cpp
文件。兩者有什麼不同?C++代碼文件擴展名? .cc vs .cpp
Google style guide似乎暗示.cc
,但沒有提供解釋。
我主要關心Linux系統上的程序。
.cpp
是C++的推薦擴展,據我所知。有些人甚至推薦使用.hpp
作爲C++頭文件,只是爲了與C區分。
儘管編譯器並不在意你做什麼,但它是個人偏好。
我決定從使用.h切換到使用.hpp的C++頭文件;主要是因爲像編輯器這樣的其他工具也需要知道 - 另外,當使用帶有gcc的預編譯頭文件時,除非在預編譯時使用'-x C++ - header'選項,否則它默認將.h文件和C++用於.hpp文件一個.h文件。 – jdkoftinoff 2009-10-09 18:00:45
@jd。同意。如果h/c文件變成hpp/cpp文件,它使自動化工具變得容易一點。 – 2009-10-09 20:34:41
g ++不能識別.hpp作爲C++頭文件(用於頭文件預編譯),但是.hh它。正因爲如此,我最終將.cc/.hh放在.cpp/.hpp上,因爲實際上沒有任何區別。 – Tronic 2010-12-09 18:41:16
只需按照項目/團隊使用的約定。
其他所用的文件擴展名包括.cxx
和.C
(首都C)。我相信Bjarne Stroustrup最初使用.C
。 .cpp
是C預處理器的名稱,因此它也被用於C++也是不幸的。
cpp = c plus plus,因此我的首選,cc或cxx代表什麼?
cxx是加號後的C++。他們不穩定,你知道,站在這樣一個點上。 c更穩定。這也是蘋果公司II作爲蘋果電腦的結果。 – 2009-10-09 18:07:56
@David - 也許我真的很老,但我記得Apple II是「Apple」[「]。 – 2009-10-09 19:16:13
@大衛哦我從來沒有想到這一點。 – Andrew 2009-10-09 19:42:48
您使用哪些擴展並不重要。選擇你喜歡的更多,只要符合命名。我知道這個命名約定唯一的例外是我不能使WinDDK
(或現在是WDK
?)編譯.cc
文件。在Linux上,雖然這不是問題。
另一種選擇是.cxx
其中x
應該是一個正旋轉45°。
Windows,Mac和Linux都支持.c++
,所以我們應該使用它。
我個人從未在任何項目中看到過.cc
,但是在編譯器不會在意的所有技術上。
誰會關心開發人員的工作,所以我的經驗法則是與您的團隊一起工作。如果您的「團隊」是開源社區,請使用非常常見的東西,其中.cpp
似乎是最受歡迎的。
與大多數樣式約定,只有兩件事情說事:
這些似乎矛盾,但他們每個人都有自己的理由價值。
.C
和.cc
似乎是我見過的(少數)面向Unix的C++程序的標準。我自己總是使用.cpp
,因爲我只是真的在Windows上工作,並且那裏一直是標準,因爲像永遠一樣。
我個人推薦.cpp
,因爲......它代表「C Plus Plus」。當然,文件擴展名是首字母縮略詞是非常重要的,但是如果這個基本原理沒有足夠的重要性,那麼其他重要的事情就是不使用shift鍵(它排除了.C
和.c++
)並且在可能的情況下避免使用正則表達式元字符.c++
- 不幸的是,你當然不能真的避免.
)。
這並不排除.cc
,所以即使它不代表什麼(或者它是什麼?),它對於面向Linux的代碼來說可能是一個不錯的選擇。
我個人使用.cc
擴展實現文件,.hh
爲標題和.inl
爲內聯/模板。
如前所述,它主要是一個品味問題。
從我所看到,.cc
似乎更「開源項目面向」,因爲它是在一些偉大的開放源碼軟件編碼風格建議,而。 cpp
似乎更加詼諧。
---編輯
如前所述,這是「從我所看到的」,那可就大錯特錯了。 這只是我所從事的所有Windows項目都使用.cpp
,而許多開源項目(主要是unix-likes)使用.cc
。
例子代碼風格使用.cc
:
你有這個參考嗎?我從來沒有見過OSS .cc vs Windows .cpp – bobby 2009-10-09 20:02:10
Visual Studio爲C++創建.cpp文件。我不知道它背後的歷史。 – 2011-06-13 13:00:31
LLVM編碼標準似乎主張.cpp/.h並在頭文件中放置' - * - C++ - * - '標籤http://llvm.org/docs/CodingStandards.html; Mozilla編碼風格建議.cpp/.h https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style; KDE似乎也在使用.cpp/.h http://quickgit.kde.org/ – sastanin 2015-05-17 22:45:19
幾個人說.cc
並不代表什麼嗎?它可能。 C++開始了「C with Classes」的生活。
確實,.cc
和.cpp
也是大多數Unix系統上的命令名(分別爲c編譯器和c預處理器)。
我專門使用.cpp
,但是我在Windows上啓動。 .cc
更像是一個Unix約定,雖然我看到它甚至在那裏越來越少。 GNU make的規則爲.cpp
,所以這可能是首選,它在默認情況下在Windows和其他所有設備上都能正常工作。另一方面,現代C++根本不使用擴展頭來進行頭部擴展,我真的不喜歡這種擴展。我的所有項目都使用.h
作爲頭文件,並且通過extern "C"
和測試__cplusplus
儘可能地支持C和C++。
我已經分別使用.C和.h作爲源代碼和頭文件。這種選擇的一個好處是,在命令行上,易於使用*.[Ch]
來選擇所有的代碼文件。使用.C
可能是在不區分大小寫的文件系統的一個問題,但如果你在同一個目錄有foo.c
和foo.C
,你值得你得到了什麼呢:)
GNU GCC承認所有以下爲C++文件,並且會使用C++無論您是通過gcc還是g ++調用它,都需要編譯:.C
,.cc
,.cpp
,.CPP
,.c++
,.cp
或.cxx
。
注.C
- 案例事項GCC,.c
是C文件,而.C
是一個C++文件(如果你讓編譯器決定它是什麼編譯即是)。
GCC還支持其他後綴來指示特殊處理,例如.ii
文件將被編譯爲C++,但未經過預處理(打算用於單獨預處理的代碼)。所有已識別的後綴詳細信息如下:gcc.gnu.org
「GCC中的案件很重要」 - Windows(因爲它不區分大小寫)怎麼樣? – 2015-09-13 09:32:52
@Devesh:Windows也一樣。但操作系統將阻止您在僅由大小寫區分的文件夾中擁有兩個文件。 – Clifford 2015-09-13 11:51:39
@DeveshKhandelwal但它是保存案例 – 2015-12-02 21:24:42
在決定使用哪個擴展程序時,考慮使用非編譯器工具是一種很好的方法,可以幫助您找到適合您的答案,因此,建議使用makefile和其他工具。
我只是想添加以下內容來幫助我找到一些.cc
與.cpp
信息。通過不同的環境中分解(從 「C++的Primer Plus」 一書)以下的擴展:
UNIX使用:.C
,.cc
,.cxx
,.c
GNU C++使用:.C
,.cc
,.cxx
,.cpp
,.c++
數字火星用途:.cpp
,.cxx
的Borland C++使用:.cpp
WATCOM用途:.cpp
微軟的Visual C++使用:.cpp
,.cxx
,.cc
Metrowerks CodeWarrior開發用途:.cpp
,.cp
,.cc
,.cxx
,.c++
不同的環境中支持不同的擴展。我也想回答這個問題,並找到這篇文章。基於這篇文章,我想我可能會使用.hpp
和.cpp
來簡化跨平臺/跨工具識別。
「基於這篇文章」:關於哪篇文章? – 2016-02-18 13:05:03
@phresnel this->文章 – spider 2016-05-09 15:48:57
這個答案比其他人更真實地解決所提出的問題,這個問題是關於尋找堅實慣例的人。其他語言有,但就文件擴展而言,C++似乎缺乏它。 – 2016-09-24 11:29:29
.cc擴展名是在makefile中使用隱式規則所必需的。期待通過這些鏈接,以獲得更好的理解makefile文件,但主要是看第二個,因爲它清楚地說,.cc的擴展的用處:
ftp://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_2.html
https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_10.html
我剛剛得知此現在。
他們再次只是'.cpp'文件。別擔心 ! :-) – lsof 2017-12-05 20:15:05
它說:「我們鼓勵你爲C++源文件使用後綴'.cc'而不是'.C'。」我懷疑這只是一個糟糕的措辭。在不區分大小寫的文件系統的系統上使用'.C'可能會產生問題。例如,就'make'而言,我認爲沒有任何特別的優勢,例如在'.cpp'上使用'.cc'。 Makefile對C++源文件使用'.cpp'工作得很好。 – 2018-01-19 03:28:23
**結論**沒關係。 **可能的起源** cc = C有類,cpp = C加上 – Lazer 2010-09-28 18:42:07
它對鏗鏘++很重要。當你給它一個名字以.h結尾的C++頭文件時,叮聲明會警告你。 – allyourcode 2013-04-13 08:37:44
嘿,什麼給?爲什麼這個問題關閉?這裏有很多基於事實的答案(儘管我承認很多隻是隨意的觀點)。我認爲沒有理由相信沒有更多有用的信息可能發佈。 – allyourcode 2013-04-13 08:48:14