什么是c头文件(.h)和c ++头文件(.hpp)之间的区别

时间:2010-02-11 19:24:48

标签: c++ c

我注意到boost库使用(.hpp)的头文件 我很好奇,因为我看到大多数源文件都使用普通的.h头文件 是否有任何特殊情况需要使用.hpp代替.h

由于

6 个答案:

答案 0 :(得分:19)

只是惯例,没什么特别的。实际上,您可以对包含文件使用任何扩展名。

答案 1 :(得分:5)

.hpp,.H等是C ++头文件的松散约定,.tcc是C ++模板实现的松散约定,.h是c文件非常强的约定。

Boost使用hpp扩展,QT使用.h扩展名,STL没有扩展名。我确信有些库使用.H但是没有看到任何库。

答案 2 :(得分:1)

事实上,奥塔维奥是正确的。

在构建混合语言产品时,我使用hpp / h来区分这两种语言。例如,类定义可能位于.hpp(.cpp中的实现)中,而.h文件只能定义C支持的函数。要进行此分离,了解语言之间的区别非常重要 - 为此我通过gcc和* .cpp传递* .c到g ++。

答案 3 :(得分:1)

#include "filename"预处理程序指令的目的是将#include行替换为filename的内容。
 所以事实上文件的任何名称都可以,但是恰好是惯例,包含文件是“.h”或“.hpp”,一个优点是你选择的编辑器中的语法高亮(在我的情况下为vim)。

答案 4 :(得分:0)

我听说UNIX和Linux程序员使用.hh和.cc而不是.cpp和.h也有些常见。我个人喜欢命名我的头文件.hh,因为它有助于emacs区分C和C ++语法高亮。我也使用.cc扩展名,因为它与.hh一起看起来很好,并且它比.cpp短。我通常在Linux环境中进行编码。

答案 5 :(得分:0)

您只是告诉编译器在编译期间将代码文件包含在您的代码中。所以它与文件的扩展名无关。但最好是文本文件。