3

使用 .h 作为 c++ 文件的标头是否错误?

我到处都能看到它,尤其是用“C 风格”编写的代码。我注意到 Emacs 总是为 .h 标头选择 C ​​突出显示样式,而为 hpp 或 hh 选择 c++。

标记你的标题.h实际上是“错误的”还是只是让我烦恼的事情?

编辑:

这让我很恼火有一个很好的(ish)原因,如果我有标记为“hpp & cpp”的项目文件,我可以使用“grep something *pp”等。否则我必须输入“.h cpp”

4

5 回答 5

13

没有错。这是 Microsoft Visual C++ 的默认设置。

只要遵循你喜欢的标准,并坚持下去。

于 2009-03-17T13:25:24.153 回答
5

调用 C++ 头文件 .h并没有错。没有关于您的代码必须使用哪些扩展的规则。对于非标头,MSVC 使用 .cpp,在 Linux 上也使用 .cc。没有一个全球标准,而且 .h 绝对是非常广泛使用的。

但我会说调用你的标题 .hpp(我也见过 .hh 几次)比仅使用 .h 更加一致和信息丰富。

于 2009-03-17T13:45:11.033 回答
3

您可以自由使用.h, .H, .hpp, .hxx, .hh, 或 whathaveyou。就像您可以自由地使用.cC 源代码和.C, .cpp, .cc, 或.cxxC++ 源代码一样。扩展主要是一种约定。

于 2009-03-17T17:31:03.157 回答
2

就像其他文件一样——.c 用于 C,.cpp 用于 C++——使用 .h 用于 C,.hpp 用于 C++。这将满足大多数编译器/编辑器。不这样做并没有错,但它可以用来提示您实际使用的两种语言中的哪一种。

如果您想在不重命名文件的情况下停止该行为,您应该查看 Emacs 配置并尝试更改源代码检测。

于 2009-03-17T13:25:19.893 回答
2

由于 Emacs 没有简单的方法来确定 .h 文件是 C 还是 C++,因此为 .h 文件选择 C ​​并为 .hpp 文件选择 C++ 并不可笑。

请注意,所有 boost 头文件都以 .hpp 为后缀。

于 2009-03-17T13:32:09.660 回答