我使用的是Orwell Dev C++ 5.8.3集成开发环境。它使用g++ 4.8.1编译器。当我保存我的C++程序文件时,它显示了几个文件扩展名,用于保存我的C++程序文件,如.cpp, .cc, .cxx, .c++, .cp
。
我选择哪个扩展很重要吗?
这些扩展是特定于编译器/IDE的,还是特定于平台的?
我使用的是windows7操作系统。
这些扩展在Unix或Linux等其他操作系统上是否也可用和/或有效?
为什么提供了这么多扩展?
原因何在?
发布于 2015-07-12 23:49:17
该标准没有强制要求C++源文件的任何格式,它甚至允许编译器从一张纸上手写代码的.jpeg图像中获取源代码并进行编译。(Funny read)
然而,这样的编译器(当然)并不存在。大多数现实世界的工具最适合任何传统的文件结尾,如.cpp
,.cc
或.cxx
,所以我建议不要完全使用你的结尾。任何传统的都是一样好的,只要在你的项目中保持一致就可以了,以避免混淆。
对于像.c++
这样的东西,我也会稍微小心一点。我不知道是不是每个系统都允许在文件名中使用这样的东西。
发布于 2015-07-13 01:58:12
我选择哪个扩展有关系吗?
是也不是。不,使用什么扩展都无关紧要。您可以使用".bat“或".frog",只要您告诉编译器您正在编译哪种语言。
不,你远离有不同含义的扩展,比如".com“和".exe”。
您列出的扩展在整个行业中都很常见。
这些扩展是特定于编译器/
还是特定于平台?
不,它们并不完全特定于某个平台,但在不同的平台上更为常见。
我试图让我的开发团队使用".hpp“而不是".h”,因为我们混合了C和C++语言文件;但他们不理解并继续对这两种语言使用“.h”。
这些扩展是否也可用于和/或有效地用于其他操作系统,如Unix或Linux?
语言扩展独立于操作系统。你可以在Windows或Linux操作系统上使用".frog“。确保操作系统允许扩展的长度。
为什么提供这么多扩展?
创造力,固执,不断适应标准。
最大的问题是操作系统无法处理文件名或扩展名中的"++“。C语言扩展很好,但有些操作系统区分大小写。当C++语言出现时,由于".c++“字符的存在,许多操作系统不能支持"++”的扩展。所以他们想出了不同的品种:
cpp - C plus plus
cxx
cc
cp
早期的另一个问题是,C++源文件将经过预处理,然后馈送到C编译器。所以预处理文件的扩展名是".cpp",这增加了更多的混乱。
原因是什么?
懒惰的程序员,有习惯的程序员,抢占市场份额。
一家编译器制造商希望将他们的编译器产品销售给尽可能广泛的受众。所以他们会适应的。
当一个程序员习惯了扩展".cxx“,并且被迫使用另一个只使用".cc”的制造商的编译器时,程序员将不会使用编译器,也不会因为习惯而降低生产力(通过不断地更改扩展名)。
因此,为了取悦最广泛的受众,编译器制造商提供了一个通用扩展和语言的表或映射。如果您将一个".c“文件提供给GNU编译器,它将采用C语言。同样,假设".cxx“文件包含C++代码。同样,这些都是常见的扩展。
您可以告诉编译器使用不同的语言编译文件。例如,您可以告诉编译器将".c“文件翻译为".c++”。这是与C++语言共享C文件的常用方法。
https://stackoverflow.com/questions/31369583
复制相似问题