我曾见过c++代码同时保存为.cc和.cpp文件。这两者之间有什么区别吗?
谷歌风格指南似乎建议使用.cc,但没有提供解释。
我主要关心Linux系统上的程序。
我曾见过c++代码同时保存为.cc和.cpp文件。这两者之间有什么区别吗?
谷歌风格指南似乎建议使用.cc,但没有提供解释。
我主要关心Linux系统上的程序。
当前回答
我个人从来没有在我所从事的任何项目中看到过。cc,但在所有的技术层面上,编译器都不会关心。
谁会关心你的源代码的开发人员,所以我的经验法则是使用你的团队觉得舒服的东西。如果你的“团队”是开源社区,那么就使用一些非常常见的东西,其中.cpp似乎是最受欢迎的。
其他回答
我分别使用。c和。h作为源文件和头文件。这种选择的一个好处是,在命令行上,它很容易使用*。[Ch]选择所有的代码文件。在不区分大小写的文件系统中使用。c可能是个问题,但如果你在同一个目录中有foo.c和foo.c,你无论如何都应该得到这样的结果:)
我正在开始一个新的c++项目,并开始寻找最新的c++风格。我在这里结束了关于文件命名的讨论,我想分享一下我是如何做出这个选择的。是:
Stroustrup认为这更多是出于商业考虑,而不是技术考虑。
按照他的建议,让我们来看看工具链期望什么。
对于UNIX/Linux,您可以将以下默认的GNU make规则解释为支持.cc文件名后缀,因为.cpp和.C规则只是别名:
$ make -p | egrep COMPILE[^=]+=
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cpp = $(COMPILE.cc)
COMPILE.C = $(COMPILE.cc)
(注意:没有默认的COMPILE。cxx别名)
因此,如果您的目标是UNIX/Linux, .cc和.cpp都是非常好的选择。
当以Windows为目标时,您正在寻找. c的问题,因为它的文件系统不区分大小写。注意Visual Studio倾向于使用.cpp后缀,这一点对您来说可能很重要
当针对macOS时,请注意Xcode更倾向于.cpp/.hpp(刚刚在Xcode 10.1上检查过)。您可以随时更改头模板使用.h。
无论如何,您也可以根据您喜欢的代码库来决定。例如,谷歌使用.cc, LLVM libc++使用.cpp。
头文件呢?它们是在C或c++文件的上下文中编译的,因此编译器或构建系统不需要区分.h和.hpp。然而,编辑器/IDE的语法高亮显示和自动缩进可能是一个问题,但通过将所有.h文件关联到c++模式可以解决这个问题。例如,我在Linux上的emacs配置以c++模式加载所有.h文件,它编辑C头文件很好。除此之外,当混合使用C和c++时,您可以遵循这个建议。
我个人的结论是:.cpp/.h是阻力最小的路径。
归根结底,这并不重要,因为c++编译器可以处理两种格式的文件。如果这在你的团队中是一个真正的问题,抛硬币,然后继续实际的工作。
据我所知,.cpp是c++的推荐扩展名。有些人甚至建议使用.hpp作为c++头文件,只是为了区别于C。
尽管编译器并不关心你做什么,但这是个人偏好。
正如其他人在我之前所写的,最后是你的项目/团队/公司所使用的。
就我个人而言,我不使用cc扩展,我试图降低扩展的数量,而不是增加它们,除非有一个明确的值(在我看来)。
为了它的价值,这是我使用的:
c -纯c代码,没有带方法的类或结构。
cpp - c++代码
hpp -只有头文件的代码。实现在头文件中(像模板类一样)
h - C/ c++的头文件。我同意可以进行另一种区分,但正如我所写的,我试图减少扩展的数量以简化。至少从我工作过的c++项目来看,纯C的h文件更少,因此我不想再添加另一个扩展。