对于GCC来说,它们应该是相同的,对吗?其中哪一个更受欢迎,我现在正在从零开始准备一个项目,我想在这两个中选择一个。
谢谢
对于GCC来说,它们应该是相同的,对吗?其中哪一个更受欢迎,我现在正在从零开始准备一个项目,我想在这两个中选择一个。
谢谢
在 C++ 中,文件扩展名实际上并不重要。.h、.hpp、.hxx 或没有文件扩展名的使用都是按照约定来的。
标准库使用没有文件扩展名的头文件。许多项目(包括 Boost)使用 .hpp。许多项目使用 .h。只需选择其中之一,并在您的项目中保持一致性即可。
鉴于我最近的发现,我建议我们重新开启这个讨论。在过去的9年中,我为我的C和C++项目中的源文件使用了以下命名约定。
这些常用函数体的一个例子是MyStringFunctionA,即ANSI实现,它在MyStringFunctionA.cpp中定义,而Unicode(宽字符)实现的MyStringFunctionW则在MyStringFunctionW.cpp中定义。 MyStringFunctionA.cpp和MyStringFunctionW.cpp包含原型、打开和关闭括号以及标头,受Unicode支持的是宽字符版本。函数体在INI文件中定义,该文件在函数定义块内联#include。
结合通用TCHAR映射,此方法极大地简化了维护Unicode和ANSI版本的工作,这两个版本都仍在积极使用中。
这种命名规范在Visual Studio 6中效果很好。然而,当我开始将代码库迁移到Visual Studio 2013时,我发现一个令人烦恼的变化,最初让我感到困惑。虽然一切编译干净,但当我的INL文件在代码编辑器中打开时,我会在错误窗口中看到数十个Intellisense“错误”列出来。我用引号引用“错误”一词,因为它们不是真正的错误;当INL文件关闭时,它们就消失了,并且将iNL合并到其中的C和CPP文件编译没有错误,链接并正确运行。头文件扩展名通常不会有影响,但我知道在某些情况下,.cpp 文件的扩展名可能会有所不同。根据您的编译器,前端可能会选择将源文件编译为 C 或 C++。
这可能会有所不同,特别是如果您将编译与链接阶段结合使用,因为它可能会导致链接不同的库(例如 g++ vs gcc),因此您可以在 makefile 中控制结果。
头文件是用C++编程语言编写的源代码头文件,可以包括数据类型、常量、变量和其他定义,用于声明和存储可重用的代码组件。 HXX文件可以使用#include指令插入到C++程序中。例如,#include myHeader.hxx指示C++编译器将"myHeader.hxx"包含到当前程序文件中。