首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><iostream> vs. <iostream.h> vs. "iostream.h“

<iostream> vs. <iostream.h> vs. "iostream.h“
EN

Stack Overflow用户
提问于 2008-10-18 00:08:06
回答 8查看 32.8K关注 0票数 37

当在C++中包含一个头文件时,...

1)在<>符号中包含.h而不是不包含.h?

代码语言:javascript
复制
#include <iostream> vs. #include <iostream.h>

2)用双引号将标题名称括起来,还是用<>符号将其括起来?

代码语言:javascript
复制
#include <iostream.h> vs. #include "iostream.h"

提前感谢!

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2008-10-18 00:16:15

简而言之:

iostream.h已被弃用-它是原始的Stroustrup版本。iostream是来自标准委员会的版本。通常,编译器会将它们指向相同的东西,但一些较旧的编译器不会使用较旧的编译器。在一些奇怪的情况下,它们将同时存在并且是不同的(以支持遗留代码),因此您必须具体说明。

""<>的区别仅仅是指在进入库之前检查本地目录中的头文件(在大多数编译器中)。

票数 52
EN

Stack Overflow用户

发布于 2008-10-18 00:11:41

下面是一个不错的链接article.

总而言之,给出的原因如下:

标准委员会生成的iostream库的版本

与CFront实现有很大的不同。{snip}

为了简化过渡,C++标准委员会声明,包括标准C++头的代码将使用缺少扩展的include指令。这允许编译器供应商发布带有.h扩展的旧样式C++库头和没有扩展名的新样式头。

不使用.h版本的优势:

为什么应该使用头文件的无扩展版本而不是.h表单来编写新代码,这有几个原因。首先是这些代码在现代编译器上编译时的不可预测性。如前所述,使用.h头的结果是特定于实现的。随着时间的推移,给定编译器拥有旧样式库的可能性会降低。

票数 7
EN

Stack Overflow用户

发布于 2013-11-01 10:02:02

作为标准委员会(X3J16)中提出放弃.h的人,我最初的目的是解决关于.h、.H、.hpp、.hxx或.h++文件扩展名的争论;或者一些人希望在标准中没有暗示这是磁盘上文件的名称,以便允许集成开发环境从内部的某个位置(如资源文件甚至编译器内部)中提取预编译头信息。

虽然Unix认为文件名是一个单独的字符串,实际上并不识别扩展名的概念,但DEC操作系统有将名称与扩展名分开的传统,如果在特定上下文中省略了扩展名,则提供“默认扩展名”。这就是我的想法,让实现来使用它想要使用的任何扩展名,并且它允许实现甚至不在磁盘上有一个文件。(我是DEC的代表。在当时的委员会。)

区分标准和标准前的报头是一个额外的好处。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/214230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档