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

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

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


当前回答

我个人使用.cc作为实现文件的扩展名,.hh作为头文件,.inl作为内联/模板。

如前所述,这主要是一个品味问题。

就我所见,.cc似乎更“面向开源项目”,因为它在一些优秀的开源软件编码风格中被建议使用,而.cpp似乎更偏向于Windowish。

——编辑

如前所述,这是“从我所见”,它可能是错误的。 只是我参与的所有Windows项目都使用。cpp,而很多开源项目(主要是类unix的)使用。cc。

使用.cc编码样式的示例:

谷歌:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml ICL: http://www.doc.ic.ac.uk/lab/cplus/c++.rules/chap4.html#sect2

其他回答

我个人使用.cc作为实现文件的扩展名,.hh作为头文件,.inl作为内联/模板。

如前所述,这主要是一个品味问题。

就我所见,.cc似乎更“面向开源项目”,因为它在一些优秀的开源软件编码风格中被建议使用,而.cpp似乎更偏向于Windowish。

——编辑

如前所述,这是“从我所见”,它可能是错误的。 只是我参与的所有Windows项目都使用。cpp,而很多开源项目(主要是类unix的)使用。cc。

使用.cc编码样式的示例:

谷歌:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml ICL: http://www.doc.ic.ac.uk/lab/cplus/c++.rules/chap4.html#sect2

正如其他人在我之前所写的,最后是你的项目/团队/公司所使用的。

就我个人而言,我不使用cc扩展,我试图降低扩展的数量,而不是增加它们,除非有一个明确的值(在我看来)。

为了它的价值,这是我使用的:

c -纯c代码,没有带方法的类或结构。

cpp - c++代码

hpp -只有头文件的代码。实现在头文件中(像模板类一样)

h - C/ c++的头文件。我同意可以进行另一种区分,但正如我所写的,我试图减少扩展的数量以简化。至少从我工作过的c++项目来看,纯C的h文件更少,因此我不想再添加另一个扩展。

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

我分别使用。c和。h作为源文件和头文件。这种选择的一个好处是,在命令行上,它很容易使用*。[Ch]选择所有的代码文件。在不区分大小写的文件系统中使用。c可能是个问题,但如果你在同一个目录中有foo.c和foo.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。