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

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

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


当前回答

.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

我现在才知道。

其他回答

另一个选项是。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没有任何意义?它可能。c++最初被称为“带类的C”。

的确,.cc和.cpp在大多数Unix系统(分别是c编译器和c预处理器)上也是命令名。

我只使用。cpp,但我开始使用Windows. cc更像是Unix的惯例,尽管我在Windows上看到的越来越少。GNU make有。cpp的规则,所以这可能是首选,它将在Windows和其他任何系统上默认工作。另一方面,现代c++对头文件完全不使用扩展,我真的不喜欢这样。我所有的项目都使用.h作为头文件,它们通过extern“C”和测试__cplusplus尽可能多地支持C和c++。

归根结底,这并不重要,因为c++编译器可以处理两种格式的文件。如果这在你的团队中是一个真正的问题,抛硬币,然后继续实际的工作。

据我所知,.cpp是c++的推荐扩展名。有些人甚至建议使用.hpp作为c++头文件,只是为了区别于C。

尽管编译器并不关心你做什么,但这是个人偏好。