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

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

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


当前回答

我分别使用。c和。h作为源文件和头文件。这种选择的一个好处是,在命令行上,它很容易使用*。[Ch]选择所有的代码文件。在不区分大小写的文件系统中使用。c可能是个问题,但如果你在同一个目录中有foo.c和foo.c,你无论如何都应该得到这样的结果:)

其他回答

与大多数风格惯例一样,只有两件事是重要的:

在任何可能的情况下,在你所使用的东西上保持一致。 不要设计任何依赖于特定选择的东西。

这些似乎相互矛盾,但它们都有各自的价值。

我个人从来没有在我所从事的任何项目中看到过。cc,但在所有的技术层面上,编译器都不会关心。

谁会关心你的源代码的开发人员,所以我的经验法则是使用你的团队觉得舒服的东西。如果你的“团队”是开源社区,那么就使用一些非常常见的东西,其中.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

我现在才知道。

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