如果我们对所有C/C++文件都有统一的扩展名(.c/.cpp),它会有什么不同?

iam*_*ind 1 c c++ implementation file header-files

C/C++项目中,大多数文件可以是任何类型.h.c/ .cpp.除了它们的标题差异,如标题和实现文件; 是否有任何功能差异?

换句话说:如果一个工作C/C++项目也能起到什么作用,如果我们改变了所有的文件.c.cpp延期?

[注意:我们也可以#include保护.c/.cpp文件.如果将它们视为标题,我们可以跳过它们的编译.]

编辑:辩论不适用于此,因为我没有任何可靠的用例.而是我想知道,如果允许给予.h,.hxx,.i扩展只是一个设施或规则.例如,我看到的一个功能差异是.cxx文件可以拥有可爱的目标文件.

R. *_*des 5

它有什么不同?编译器非常高兴.对它来说,它只是文件.

但对你?你有很多不同:

  • 你不再能够立即弄清楚哪一个是标题,哪一个是实现;
  • 你不能再给标题和实现提供相同的名称;

  • 没有功能差异.所有文件扩展名都适用于人类.当然,许多应用程序基于文件扩展进行假设,gcc就是一个例子. (6认同)

Jas*_*son 5

如果您正在使用gcc,并且尝试编译一堆带有.c扩展名的C++文件,它将尝试编译您的文件 - 如果它是一个C语言文件,这将创建一个吨错误.

还有项目理智......这就是为什么很多时候你会看到项目实际上将C++标题标记为.hpp而不仅仅是.h,这样就可以更容易地区分C语言源代码和标题,以及C++源代码和头文件.