可能的重复: *.h或*.hpp用于类定义 正确的c++代码文件扩展名?.cc vs .cpp
我曾经认为它是这样的:
.h文件是C和c++的头文件,通常只包含声明。 . C文件是C的源代码。 .cpp文件是c++源代码(也可以是C源代码)。
然后出现了。hpp、。cc和。cxx这样的文件,我完全搞糊涂了……它们之间有什么区别?什么时候使用“新的”?
可能的重复: *.h或*.hpp用于类定义 正确的c++代码文件扩展名?.cc vs .cpp
我曾经认为它是这样的:
.h文件是C和c++的头文件,通常只包含声明。 . C文件是C的源代码。 .cpp文件是c++源代码(也可以是C源代码)。
然后出现了。hpp、。cc和。cxx这样的文件,我完全搞糊涂了……它们之间有什么区别?什么时候使用“新的”?
当前回答
这真的不重要。 如果你将.c提供给c++编译器,它将被编译为cpp, .cc/。CXX只是一些编译器使用的.cpp的替代品。
.hpp是一个区分头文件的尝试,其中有显著的c和c++的差异。一种常见的用法是.hpp具有必要的cpp包装器或命名空间,然后包括.h,以便将c库公开给c和c++。
其他回答
这些扩展并不是新的,而是旧的。:-)
在c++刚刚出现的时候,有些人希望源文件的扩展名是.c++,但这在大多数文件系统上行不通。所以他们尝试了一些类似的东西,比如。cxx,或者。cpp。
其他人则考虑语言名称,并将。c“递增”到。cc,甚至在某些情况下是。c。没那么流行。
有些人认为,如果源是.cpp,则头文件应该是.hpp以匹配。适度的成功。
一般来说,. C和.h文件用于C或C兼容代码,其他都是c++。
许多人喜欢对c++文件使用一致的配对:.cpp和.hpp, .cxx和.hxx, .cc和.hh,等等。我个人更喜欢。cpp和。hpp。
谈到。hpp扩展名,我发现它很有用,当人们看到这个头文件时,应该知道这个头文件包含c++和非C,比如使用名称空间或模板等,所以他们不会试图将它提供给C编译器! 我还喜欢将不仅包含声明还包含实现的头文件命名为.hpp文件。像头文件,包括模板类。虽然这只是我的观点,当然它不应该是正确的!:)
我用".hpp"作为c++头文件,用".h"作为C语言头文件。 “.hpp”提醒我该文件包含用于 对于C语言无效的c++语言,例如 作为“类”声明。
这真的不重要。 如果你将.c提供给c++编译器,它将被编译为cpp, .cc/。CXX只是一些编译器使用的.cpp的替代品。
.hpp是一个区分头文件的尝试,其中有显著的c和c++的差异。一种常见的用法是.hpp具有必要的cpp包装器或命名空间,然后包括.h,以便将c库公开给c和c++。