gpt4 book ai didi

c++ - #include 在 C++ 中?

转载 作者:可可西里 更新时间:2023-11-01 18:16:57 25 4
gpt4 key购买 nike

我读到 #include <file>将在编译之前通过 C++ 预处理器将粘贴"file"复制到我们的源文件中。

这是否意味着只要我们编译源文件,"file"(iostream)也会被编译一遍又一遍?

同样在C++完成它的工作之后,中间文件的大小是否也有"file"+“源文件大小”的字节?

最佳答案

I read that #include <file> will copy paste “file” into our source file by C++ preprocessor before being compiled.

是的。编译器本身看到的数据将包含 file 中的数据。以及源文件中的数据。 (实际上,如今真正的编译器倾向于将 C 预处理器和编译器前端以及编译器后端合并到一个程序中 - 但这是一个非常详细的细节。)

Does this mean that the “file” (iostream) will also be compiled again and again as long as we compile source file?

是的。一些编译器有一个叫做“预编译头文件”的特性,它允许你一次编译一堆头文件,然后多次使用它的输出。如何做到这一点因编译器而异;如果您需要可移植性,请不要担心(编译时间不会有很大的不同)。

Also after C++ does its job, will the size of intermediate file also have bytes of “file” + "size of source file"?

没有。输出文件的大小与源文件的大小关系很小。例如#include <iostream>定义了很多,很多内联函数。任何特定程序只会使用其中的极少数 - 因此它们将从编译器输出中省略。

注释(在源文件中使用空格)不会出现在输出中。

另一方面,如果您编写一个复杂的模板,然后为几种不同的类型实例化它,那么输出将包含每种类型的模板的不同拷贝,并且可能比输入大很多。

关于c++ - #include <iostream> 在 C++ 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41116250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com