我注意到boost库使用(.hpp)的头文件 我很好奇,因为我看到大多数源文件都使用普通的.h头文件 是否有任何特殊情况需要使用.hpp代替.h
由于
答案 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)
您只是告诉编译器在编译期间将代码文件包含在您的代码中。所以它与文件的扩展名无关。但最好是文本文件。