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

时间:2014-11-17 16:15:34

标签: c++ syntax include language-lawyer

我知道之前曾询问过有关<header><header.h>之间区别的问题。在阅读完这些答案之后,我已经获得了以下差异

  • 当然{@ 1}}已弃用,较新的符合标准的编译器不支持
  • iostream.h并不包含iostream.h命名空间内的所有内容,也不会使用模板。

好。

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

1 个答案:

答案 0 :(得分:3)

不需要“system”标头作为文件。因此指定使用<>的包含:

  

C ++ 11 16.2 [cpp.include] / 2:在一系列实现定义的位置中搜索由&lt;之间的指定序列唯一标识的头。和&gt;分隔符,并导致该标题的整个内容替换该指令。如何指定场所或标识的标题是实现定义的。

因此,如果实现者认为这是一个好主意,那么可以在不加载和预处理文本文件的情况下使实现已知的头文件(可能包括当前和/或过时的标准库头文件)声明。

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