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