我独家使用 .cpp ,但我从Windows开始 . .cc 更像是一个Unix惯例,虽然我看到它越来越少了 . GNU make有 .cpp 的规则,所以's probably preferred, it will work by default on both Windows and everything else. On the other hand modern C++ uses no extension at all for headers, I really don't就是这样 . 我的所有项目都使用 .h 作为头文件,它们通过 extern "C" 和测试 __cplusplus 尽可能地支持C和C.
16 回答
.C
和.cc
似乎是(少数)面向Unix的C程序的标准我自己总是使用.cpp
,因为我只在Windows上工作,因为我永远都是标准 .我个人推荐
.cpp
,因为......它代表"C Plus Plus" . 文件扩展名是首字母缩略词当然是至关重要的,但是如果这个基本原理证明不够引人注目,那么其他重要的事情就是不使用shift键(排除.C
和.c++
)并尽可能避免使用正则表达式元字符(排除在外).c++
- 遗憾的是你无法真正避开.
当然 . )这并不排除
.cc
,所以即使它并不真正代表什么(或者它是什么?)它可能是面向Linux的代码的一个很好的选择 .GNU GCC将以下所有内容识别为C文件,无论是通过gcc还是g:
.C
,.cc
,.cpp
,.CPP
,.c++
,.cp
或.cxx
调用,它都将使用C编译 .注意
.C
- GCC中的情况,.c
是一个C文件而.C
是一个C文件(如果你让编译器决定它编译的是什么) .GCC还支持其他后缀来指示特殊处理,例如
.ii
文件将被编译为C,但不进行预处理(用于单独的预处理代码) . 所有公认的后缀详见gcc.gnu.org与大多数样式约定一样,只有两件事重要:
尽可能保持使用的一致性 .
不要设计任何取决于所使用的特定选择的东西 .
这些似乎可能相互矛盾,但它们各自都有其自身 Value .
我个人使用
.cc
扩展名来实现文件,.hh
用于 Headers ,.inl
用于内联/模板 .如前所述,主要是品味问题 .
从我所看到的情况来看,
.cc
似乎更像是“开源项目导向”,因为它在一些很好的开源软件编码风格中被建议,而 .cpp
似乎更像是Windowish .---编辑
如上所述,这是"from what i've seen",可能是错误的 . 它's just that all Windows projects I'已经使用过
.cpp
,很多开源项目(主要是unix-like)使用.cc
.使用
.cc
编写样式的示例:Google:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
ICL:http://www.doc.ic.ac.uk/lab/cplus/c++.rules/chap4.html#sect2
在一天结束时无关紧要,因为C编译器可以处理任何格式的文件 . 如果这是团队中的一个真正问题,请翻转硬币并继续实际工作 .
cpp = c plus plus因此我首选,cc或cxx代表什么?
我个人从未见过
.cc
在我关心的任何项目中 .谁会关心开发人员,因此我的经验法则是与您的团队合作 . 如果您的"team"是开源社区,请选择一些非常常见的东西,其中
.cpp
似乎是最受欢迎的 .我分别使用.C和.h作为源和头 . 这个选择的一个好处是,在命令行上,它易于使用
*.[Ch]
来选择所有代码文件 . 使用.C
可能是不区分大小写的文件系统的问题,但是如果你在同一目录中有foo.c
和foo.C
,那么你应该得到你得到的东西:)有几个人说
.cc
不代表什么?它可能 . C的起点是"C with Classes" .是的,
.cc
和.cpp
也是大多数Unix系统上的命令名(分别是c编译器和c预处理器) .我独家使用
.cpp
,但我从Windows开始 ..cc
更像是一个Unix惯例,虽然我看到它越来越少了 . GNU make有.cpp
的规则,所以's probably preferred, it will work by default on both Windows and everything else. On the other hand modern C++ uses no extension at all for headers, I really don't就是这样 . 我的所有项目都使用.h
作为头文件,它们通过extern "C"
和测试__cplusplus
尽可能地支持C和C.它没有使用 . 选择你喜欢的更多,只需与命名保持一致 . 我唯一的例外是
WinDDK
(或者现在是WDK
?)来编译.cc
文件 . 在Linux上,虽然这不是一个问题 ..cc扩展名是在makefile中使用隐式规则所必需的 . 查看这些链接以更好地理解makefile,但主要看第二个,因为它清楚地说明.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
和.C
(大写C) . 我相信Bjarne Stroustrup最初使用了.C
..cpp
是C预处理器的名称,因此不幸的是它也被用于C语言处理器 .另一个选项是
.cxx
,其中x
应该是旋转45°的加号 .Windows,Mac和Linux都支持
.c++
所以我们应该使用它 .据我所知,
.cpp
是C的推荐扩展名 . 有些人甚至建议使用.hpp
用于C标头,只是为了区别于C.虽然编译器不关心你做什么,但它是个人偏好 .
关于哪些用于makefile和其他工具的好建议,考虑非编译器工具,同时决定使用哪个扩展是一个很好的方法来帮助找到适合你的答案 .
我只是想添加以下内容来帮助我找到一些
.cc
vs.cpp
信息 . 以下是按不同环境(来自"C++ Primer Plus"书)细分的扩展:Unix使用:
.C
,.cc
,.cxx
,.c
GNU C使用:
.C
,.cc
,.cxx
,.cpp
,.c++
数字火星使用:
.cpp
,.cxx
Borland C使用:
.cpp
Watcom使用:
.cpp
Microsoft Visual C使用:
.cpp
,.cxx
,.cc
Metrowerks CodeWarrior使用:
.cpp
,.cp
,.cc
,.cxx
,.c++
不同的环境支持不同的扩展 . 我也想回答这个问题并发现这篇文章 . 基于这篇文章,我想我可能会选择
.hpp
和.cpp
以便于跨平台/跨工具识别 .