首页 文章

C代码文件扩展名? .cc vs .cpp

提问于
浏览
462

我看到C代码保存为 .cc.cpp 文件 . 这两者有区别吗?

Google style guide似乎建议 .cc ,但没有提供任何解释 .

我主要关注Linux系统上的程序 .

16 回答

  • 557

    .C.cc 似乎是(少数)面向Unix的C程序的标准我自己总是使用 .cpp ,因为我只在Windows上工作,因为我永远都是标准 .

    我个人推荐 .cpp ,因为......它代表"C Plus Plus" . 文件扩展名是首字母缩略词当然是至关重要的,但是如果这个基本原理证明不够引人注目,那么其他重要的事情就是不使用shift键(排除 .C.c++ )并尽可能避免使用正则表达式元字符(排除在外) .c++ - 遗憾的是你无法真正避开 . 当然 . )

    这并不排除 .cc ,所以即使它并不真正代表什么(或者它是什么?)它可能是面向Linux的代码的一个很好的选择 .

  • 64

    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

  • 11

    与大多数样式约定一样,只有两件事重要:

    • 尽可能保持使用的一致性 .

    • 不要设计任何取决于所使用的特定选择的东西 .

    这些似乎可能相互矛盾,但它们各自都有其自身 Value .

  • 16

    我个人使用 .cc 扩展名来实现文件, .hh 用于 Headers , .inl 用于内联/模板 .

    如前所述,主要是品味问题 .

    从我所看到的情况来看, .cc 似乎更像是“开源项目导向”,因为它在一些很好的开源软件编码风格中被建议,而 . cpp 似乎更像是Windowish .

    ---编辑

    如上所述,这是"from what i've seen",可能是错误的 . 它's just that all Windows projects I'已经使用过 .cpp ,很多开源项目(主要是unix-like)使用 .cc .

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

  • 6

    在一天结束时无关紧要,因为C编译器可以处理任何格式的文件 . 如果这是团队中的一个真正问题,请翻转硬币并继续实际工作 .

  • 8

    cpp = c plus plus因此我首选,cc或cxx代表什么?

  • 11

    我个人从未见过 .cc 在我关心的任何项目中 .

    谁会关心开发人员,因此我的经验法则是与您的团队合作 . 如果您的"team"是开源社区,请选择一些非常常见的东西,其中 .cpp 似乎是最受欢迎的 .

  • 9

    我分别使用.C和.h作为源和头 . 这个选择的一个好处是,在命令行上,它易于使用 *.[Ch] 来选择所有代码文件 . 使用 .C 可能是不区分大小写的文件系统的问题,但是如果你在同一目录中有 foo.cfoo.C ,那么你应该得到你得到的东西:)

  • 7

    有几个人说 .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.

  • 7

    它没有使用 . 选择你喜欢的更多,只需与命名保持一致 . 我唯一的例外是 WinDDK (或者现在是 WDK ?)来编译 .cc 文件 . 在Linux上,虽然这不是一个问题 .

  • 27

    .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

    我现在才知道这件事 .

  • 9

    只需按照项目/团队使用的惯例 .

  • 7

    使用的其他文件扩展名包括 .cxx.C (大写C) . 我相信Bjarne Stroustrup最初使用了 .C . .cpp 是C预处理器的名称,因此不幸的是它也被用于C语言处理器 .

  • 229

    另一个选项是 .cxx ,其中 x 应该是旋转45°的加号 .

    Windows,Mac和Linux都支持 .c++ 所以我们应该使用它 .

  • 156

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

    虽然编译器不关心你做什么,但它是个人偏好 .

  • 6

    关于哪些用于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 以便于跨平台/跨工具识别 .

相关问题