这是iostream.h和iostream之间的区别吗?

Is this a difference between iostream.h and iostream

本文关键字:iostream 区别 之间 这是      更新时间:2023-10-16

我知道以前有人问过关于<header><header.h>之间区别的问题。在阅读了这些答案之后,我列出了以下差异

  • 当然,iostream.h已被弃用,但较新的符合标准的编译器不支持它
  • iostream.h不包含 std 命名空间中的所有内容,也不使用模板。

好。

但是,在阅读了几本书和一些答案(像这样)之后,我推断#include<iostream.h>在我们的程序中包含了一个名为iostream.h的特定文件,而#include<iostream>甚至根本不需要映射到文件。它只是保证属于iostream库的所有内容都包含在我们的程序中。我说的对吗?

不需要"system"标头作为文件。使用 <> 的包含指定如下:

C++11 16.2 [cpp.include]/2:在实现定义的位置序列中搜索由<和>分隔符之间的指定序列唯一标识的标头,并导致该指令被标头的全部内容替换。如何指定位置或标识标头由实现定义。

因此,如果实现者认为这是个好主意,则无需加载和预处理文本文件即可使用来自实现已知的标头(可能包括也可能不包括当前和/或过时的标准库标头)的声明。

包含 "" 将首先搜索文件(在实现定义的位置),如果失败,则回退到<>