include <x> vs include <x.h> </x.h> </x>

时间:2014-03-12 15:37:10

标签: c++ header-files

我知道我们总是包含一个头文件,那为什么我会找到一些像

这样的头文件
#include<iostream>

没有.h扩展名,但有一些头文件,如

#include<windows.h>

使用.h扩展名,我也尝试将add.h添加到某些头文件,例如iostream.h,但是没有用,所以在包含文件时添加.h扩展名而不执行此操作有什么不同。

感谢所有回复...非常感谢

3 个答案:

答案 0 :(得分:5)

它只取决于特定的标题。

标准库标题(如<iostream>)没有扩展名 - 只需使用名称。

对于其他头文件(严格来说,这些不应该被称为“头文件”,而是“包含的源文件”),它是文件作者决定使用的任何文件。因此windows.h使用扩展程序.h。 Boost更喜欢.hpp的文件。 .hh.hxx也常用于C ++,但如果头文件的作者决定使用myHeader.IamBob,则必须:

#include <myHeader.IamBob>

答案 1 :(得分:1)

您始终需要指定完全文件名。没有&#34;隐含&#34; .h。对于标准的符合实现,c ++库没有扩展名。

因此

#include <iostream>

是有效且符合的,而

#include <iostream.h>
编译器(或您的邻居)可能会接受

,但它不可移植,也不保证与iostream完全相同或兼容。

答案 2 :(得分:0)

在C ++于1998年首次标准化之前,iostream.h标头曾经很常见。但是由于使用的是98标准,后者已经失宠(非标准和全部)并且不再受支持所有平台。使用它的代码应被视为非标准遗留代码,并且不可移植。 包括<iostream>,而不是<iostream.h>(后者已被弃用)