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



C/C++项目中,大多数文件的类型可以是.h.c/.cpp。除了它们的命名差异,例如头文件和实现文件;是否存在功能差异

换句话说:如果在一个工作的C/C++项目中如果我们更改所有扩展名为.c.cpp的文件,会有什么不同

[注意:我们也可以为.c/.cpp文件设置#include保护。如果它们被观察为标头,我们可以跳过它们的编译。]

编辑:辩论不是为了这个,因为我没有任何可靠的用例。相反,我想知道,允许给予.h.hxx.i扩展只是一种便利或规则。例如,我看到的一个功能差异是.cxx文件可以有它们喜欢的对象文件。

它有什么区别?编译器对此非常满意。对它来说,这只是文件。

但对你来说?你做了很多不同:

  • 您不再能够立即弄清楚哪一个是头,哪一个就是实现
  • 您不能再为头和实现提供相同的名称

如果您使用的是gcc,并且您尝试编译一堆带有.C扩展名的C++文件,那么它将尝试像编译C语言文件一样编译您的文件,这将产生大量错误。

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

头文件通常不能直接编译,而是#包含在直接编译的文件中。通过给这两组文件提供自己的扩展名,可以更容易地确定要编译的文件。

Make和IDE以及其他工具通常期望源代码使用.c/.cpp,头文件使用h/hpp。编译器通常更进一步,对于.C默认为C编译,对于.cpp 默认为C++编译

所以,给头文件提供和源文件相同的扩展名是个坏主意。

相关内容

  • 没有找到相关文章

最新更新