我曾见过c++代码同时保存为.cc和.cpp文件。这两者之间有什么区别吗?

谷歌风格指南似乎建议使用.cc,但没有提供解释。

我主要关心Linux系统上的程序。


当前回答

.C和.cc似乎是我见过的(少数)面向unix的c++程序的标准。我自己一直使用。cpp,因为我只在Windows上工作,这是永远的标准。

我个人推荐。cpp,因为……它代表“C + +”。当然,文件扩展名是首字母缩略词是非常重要的,但如果这个理由证明不够有说服力,其他重要的事情是不使用shift键(这排除了.c和.c++)和尽可能避免正则表达式元字符(这排除了.c++——不幸的是,你不能真正避免。当然)。

这并不排除.cc的可能性,所以即使它并不代表任何东西(或者它真的代表什么吗?),对于面向linux的代码来说,它可能是一个很好的选择。

其他回答

其他使用的文件扩展名包括。cxx和。C(大写C)。我相信Bjarne Stroustrup最初使用的是。C .cpp是C预处理器的名称,所以不幸的是它也被用于c++。

另一个选项是。cxx,其中x应该是一个正旋转45°。

Windows, Mac和Linux都支持。c++,所以我们应该使用它。

关于使用makefile和其他工具的很好的建议,在决定使用哪个扩展时考虑非编译器工具,这是帮助找到适合您的答案的很好的方法。

我只是想添加以下内容来帮助我找到一些。cc vs .cpp的信息。下面是按不同环境分解的扩展(来自“c++ Primer Plus”一书):

Unix使用。c, .cc, .cxx, .C

GNU C++用途:.C, .cc, .cxx, .cpp, .c++

Clang使用:.C, .cc, .cxx, .cpp, .c++和.cppm作为模块接口

数码火星uses: cpp, cxx

Borland c++使用:.cpp

Watcom使用:.cpp

Microsoft Visual c++使用。cpp, .cxx, .cc和.ixx作为模块接口

Metrowerks CodeWarrior uses: .cpp .cp .cc .cxx .c++

不同的环境支持不同的扩展。我也在寻找这个问题的答案,并找到了这篇文章。基于这篇文章,为了便于跨平台/跨工具识别,我想我可能会使用。hpp和。cpp。

.cc扩展名对于在makefile中使用隐式规则是必要的。通过这些链接可以更好地理解makefiles,但主要看第二个链接,因为它清楚地说明了.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

我现在才知道。

GNU GCC将以下所有文件识别为c++文件,并且无论您是通过GCC还是g++调用它,都将使用c++编译:.C, .cc, .cpp, .cpp, .c++, .cp或.cxx。

注意。C -大小写在GCC中很重要,.C是一个C文件,而.C是一个c++文件(如果你让编译器决定它要编译什么)。

GCC还支持其他后缀来表示特殊处理,例如.ii文件将被编译为c++,而不是预处理(用于单独的预处理代码)。所有被认可的后缀的详细信息请参见gcc.gnu.org