C++ 中 .cc 和 .cpp 文件扩展名之间的区别

如果你曾经在 Linux 和 Windows 等不同系统上使用过 C++,那么你一定遇到过 .cc 和 .cpp 文件扩展名。在互联网上,你会发现许多消息来源说这些文件扩展名之间没有区别,对此确实存在很多混淆。

在本文中,我们将讨论这些 C++ 文件扩展名的细微差别以及它们之间的区别。但在我们开始比较这两个文件扩展名之前,让我们首先收集有关这两个文件扩展名基础的信息。

.cpp 文件扩展名

扩展名为 .cpp 的文件是 C++ 源代码文件。这些文件也称为实现文件,因为它们具有头文件中声明的方法的定义。

该文件旨在将 C++ 项目的接口与实现分开。这样,成员函数的所有声明都在头文件中进行,并且相同的详细信息保存在 .cpp 文件中。

我们可以将 .cpp 文件用作编写 C++ 应用程序的简单文件或用作类实现的文件。在面向对象编程的情况下,.cpp 文件用于类定义。

为此,类的所有数据成员和函数都在头文件中声明。该文件引用文件开头的 include 语句中的头文件。

.cpp 文件与 Windows 操作系统兼容;使用一些外部程序,它们也适用于 Linux 和 Mac 操作系统。

.cc 文件扩展名

扩展名为 .cc 的文件是 C++ 源代码文件。这可以包含单个程序以及编译成机器代码的函数。

这些文件与 Mac、Linux 和 Windows 操作系统兼容,并受到这些操作系统上的各种程序的支持。

有关文件扩展名的完整列表,请参阅 this 文档。

C++ 中 .cc 和 .cpp 文件扩展名之间的相似之处

.cc 和 .cpp 文件扩展名并不相同,但它们是相关的,因为它们都用作 C++ 文件扩展名。对于编译器,两者之间没有区别。

C++ 编译器可以自动处理所有 C++ 扩展而不会造成任何麻烦。GNU GCC 编译器将所有这些扩展名视为 C++ 文件:.cc.c.c++.cp.cxx.cpp.CPP,并始终使用 C++ 编译来编译它们,而我们不必使用 GCC 调用它。

虽然 .cpp 是推荐的 C++ 文件扩展名,但它更多的是你决定使用的个人偏好。它也可能取决于项目的整个团队,几乎不会产生任何差异。

如果项目与开源相关,最好使用社区中常见的 .cpp。这就是这两个文件扩展名是如何相关的。

现在让我们深入探讨期待已久的讨论:.cc 和 .cpp 文件扩展名之间的区别。

C++ 中 .cc 和 .cpp 文件扩展名之间的区别

.cc 和 .cpp 文件扩展名之间的差异可以根据各种因素进行总结。其中包括工作环境、操作系统、旧约定以及这些文件扩展名的来源。

以下是这两个文件扩展名之间的所有区别点:

  1. 不同的环境支持不同的文件扩展名。 .cc 文件扩展名主要由 Unix、GNU C++、Clang、Microsoft Visual C++ 和 Metrowerks CodeWarrior 支持。

    另一方面,GNU C++、Clang、Digital Mars、Borland C++、Watcom、Microsoft Visual C++ 和 Metrowerks CodeWarrior 支持 .cpp文件扩展名。这种兼容性区别有助于跨平台识别并使代码具有可移植性。

  2. 操作系统在这里也扮演着重要的角色。对于 Unix 和 Linux,约定是 .cc,而对于 Windows,它是 .cpp

    你将看到 .cc 文件扩展名更常用于 Linux/Unix 系统,而 .cpp 文件主要用于 Windows,因为它会导致 .C 文件扩展名出现问题。另一方面,对于 macOS,Xcode 首选 .cpp 文件扩展名。

  3. 这两种文件类型的起源也有一些差异。最初,.cpp 被用作 C++ 文件的约定,因为它代表 C plus plus,用作 C++ 文件扩展名听起来合乎逻辑。

    由于当时 cpp 已经作为 C 预处理器存在,所以有可能将 .cpp 文件与 .i 文件混淆(cpp 调用的扩展)。所以最初,扩展名改为 .cc

    随着时间的推移,由于同义词的缩写,只有 .cpp 变得更受欢迎。

  4. 毫无疑问,与 Linux 和 Unix 相比,Windows 是迄今为止最常用和流行的操作系统。由于 Windows 在 Linux 和 Unix 系统上的普及,.cpp文件扩展名更常用。
  5. 另一个可以区分这两个文件扩展名的外部因素是代码库的使用。例如,Google 使用 .cc 文件扩展名,而 LLVM libc++ 使用 .cpp 文件扩展名。

结论

在本文中,我们了解了 .cc 和 .cpp 文件扩展名如何用于不同平台和操作系统(如 Unix、Mac 和 Windows)上的 C++ 文件。我们还讨论了这两个文件扩展名的不同之处以及它们之间的关系。

同样,完全由开发人员根据需要选择任何文件扩展名。这就是本文的全部内容。

你可能感兴趣的:(C/C++,c++,数学建模,开发语言)