C++ 不同类型的C/C++;标头档
在最传统的方式中,c/c++使用C++ 不同类型的C/C++;标头档,c++,c,header-files,C++,C,Header Files,在最传统的方式中,c/c++使用.h作为头文件扩展名。然而,在现实世界中(即Visual C++),还有许多其他类型的头文件,例如:.hxx,.hh,.w,.idl,等等 我的问题是,为什么人们需要不同类型的头文件?我没有看到的所有头类型的完整列表,但请选择您熟悉的任何一种类型并稍作解释。对于编译器来说,没有区别。您可以使用所需的扩展,甚至完全不使用扩展。因此,.hh,.hxx,。我的扩展名是有效的。对于编译器来说,唯一重要的是它可以找到一个具有您指定名称的文件。对于编译器来说,没有区别。您可以
.h
作为头文件扩展名。然而,在现实世界中(即Visual C++),还有许多其他类型的头文件,例如:.hxx
,.hh
,.w
,.idl
,等等
我的问题是,为什么人们需要不同类型的头文件?我没有看到的所有头类型的完整列表,但请选择您熟悉的任何一种类型并稍作解释。对于编译器来说,没有区别。您可以使用所需的扩展,甚至完全不使用扩展。因此,
.hh
,.hxx
,。我的扩展名
是有效的。对于编译器来说,唯一重要的是它可以找到一个具有您指定名称的文件。对于编译器来说,没有区别。您可以使用所需的扩展,甚至完全不使用扩展。因此,.hh
,.hxx
,。我的扩展名
是有效的。对于编译器来说,唯一重要的是它可以找到一个具有您指定名称的文件。对于编译器来说,没有区别。您可以使用所需的扩展,甚至完全不使用扩展。因此,.hh
,.hxx
,。我的扩展名
是有效的。对于编译器来说,唯一重要的是它可以找到一个具有您指定名称的文件。对于编译器来说,没有区别。您可以使用所需的扩展,甚至完全不使用扩展。因此,.hh
,.hxx
,。我的扩展名
是有效的。编译器的唯一重要的事情是它可以找到一个文件,你有指定的名称。 < P>编译器不关心扩展,但是大多数代码编辑器如果遇到这些扩展,就会切换到C++模式。
<>例如,Emacs使用
<>例如,Emacs使用
<>例如,Emacs使用
例如,Emacs将使用
c-mode
和.h
扩展名,同时切换到c++-mode
和.hpp
扩展名。我将使用.inl作为头的内联方法,我不想把我的“接口”文档(即.h文件)弄乱。因此,在MyClass.h的底部,我将#包括“MyClass.inl”
我也看到了.hpp
,可怕的是,.h++
@MooingDuck:.h++
似乎是合法的。用于#include
文件名的q-char序列由q-char定义:源字符集的任何成员,新行和“
类似地用于h字符-sequence@BenVoigt:是的,这是完全合法的,当我在文件名中看到这样的字符时,我会犹豫。我将使用.inl作为该头的内联方法,我不想把我的“接口”文档(即.h文件)弄乱。因此,在MyClass.h的底部,我将#包括“MyClass.inl”
我也看到了.hpp
,可怕的是,.h++
@MooingDuck:.h++
似乎是合法的。用于#include
文件名的q-char序列由q-char定义:源字符集的任何成员,新行和“
类似地用于h字符-sequence@BenVoigt:是的,这是完全合法的,当我在文件名中看到这样的字符时,我会犹豫。我将使用.inl作为该头的内联方法,我不想把我的“接口”文档(即.h文件)弄乱。因此,在MyClass.h的底部,我将#包括“MyClass.inl”
我也看到了.hpp
,可怕的是,.h++
@MooingDuck:.h++
似乎是合法的。用于#include
文件名的q-char序列由q-char定义:源字符集的任何成员,新行和“
类似地用于h字符-sequence@BenVoigt:是的,这是完全合法的,当我在文件名中看到这样的字符时,我会犹豫。我将使用.inl作为该头的内联方法,我不想把我的“接口”文档(即.h文件)弄乱。因此,在MyClass.h的底部,我将#包括“MyClass.inl”
我也看到了.hpp
,可怕的是,.h++
@MooingDuck:.h++
似乎是合法的。用于#include
文件名的q-char序列由q-char定义:源字符集的任何成员,新行和“
与h-char类似-sequence@BenVoigt:是的,这是完全合法的,当我在文件名中看到这样的字符时,我会犹豫。