iostream.h会编译吗?

时间:2012-08-01 04:44:58

标签: c++ compilation

我有一个非常基本的问题。

让我们看一下以下代码片段:

#include<iostream>
int main()
{
   std::cout<<"Hello world \n";
}

在上面的节目中,“iostream&#39;被编译?

如果它编译,它不是一个开销吗?

因为无论如何我们不会在iostream中改变任何东西,但每次都会编译: - /

请帮助我理解这一点。

3 个答案:

答案 0 :(得分:2)

include基本上会在源文件中粘贴<iostream>的内容,因此您可以说它已被编译。

  

如果它编译,是不是开销?

需要更长时间,但您需要包含,因为您使用std::cout。这是您应该只包含所需内容并尽可能使用声明的原因之一。

您可以做的是查看预编译的标头。

答案 1 :(得分:1)

是的,每个包含的标题都将被编译。

是的,它是开销,这就是为什么有些编译器有一些称为预编译头的原因。

请记住,C ++是基于C构建的,这是一种相当古老的语言,这是它所展示的领域之一。

答案 2 :(得分:0)

首先:你不能真正'编译'标题到目标文件/可执行文件 - 它们只包含编译器生成正确代码的类型和其他信息。但是,您可以包含这些文件并使编译器解析它们以获取信息。是的,它可能是一个非常小的开销,但实际上,你必须包括它。