代码之家  ›  专栏  ›  技术社区  ›  Dr Deo

C头文件(.h)和C++头文件(.HPP)的区别是什么?

c c++
  •  12
  • Dr Deo  · 技术社区  · 15 年前

    我注意到Boost库使用(.hpp)的头文件。
    我很好奇,因为我看到的大多数源文件都使用普通的.h头文件。
    有什么特殊情况需要使用.hpp而不是.h吗

    谢谢

    6 回复  |  直到 12 年前
        1
  •  19
  •   Otávio Décio    15 年前

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

        2
  •  5
  •   Anycorn    15 年前

    HPP,.H等是C++头文件的松散约定,TCC是C++模板实现的宽松约定,对于C文件来说,H是很强的约定。

    Boost使用hpp扩展,qt使用.h扩展,stl没有扩展。我确信有一些图书馆使用.h,但没有看到任何。

        3
  •  1
  •   user257111    15 年前

    的确,奥塔维奥是对的。

    在构建混合语言产品时,我使用hpp/h来区分这两种语言。例如,类定义可以放在.hpp中(在.cpp中实现),而.h文件只定义C支持的函数。要实现这种分离,重要的是要知道语言之间的区别-为此,我通过g c c传递*.c,通过g++传递*.cpp。

        4
  •  1
  •   sud03r    15 年前

    目的 #include "filename" 预处理器指令将替换 #include 与内容对齐 filename .
    因此,infct文件的任何名称都可以,但碰巧是惯例,include文件是“.h”或“.hpp”,一个优势是您选择的编辑器中的语法突出显示(在我的例子中是vim)。

        5
  •  0
  •   Victor Zamanian    15 年前

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

        6
  •  0
  •   Raveendra Pai U    12 年前

    您只是告诉编译器在编译期间在代码中包含给定的文件。所以不管文件有什么扩展名。但最好是文本文件。