只是学习 c++ 的新手。到目前为止,我的理解是,当我在程序的开头包含<iostream>
头文件时,程序可以使用头文件附带的任何功能,即。cerr
、cin
、clog
、cout
、wcerr
、wcin
、wclog
、wcout
。
- 如果我的程序只使用
cin
和cout
,即使不使用或不需要其他函数,编译后它是否仍然包含它们? - 如果在编译时包含这些未使用的函数,这不会给我的程序增加"膨胀"吗?
- 还是 include 语句只是告诉编译器在哪里查找这 8 个函数,但编译器只是只获取实际编写在主函数中的
cin
和cout
上的函数信息?
我找不到任何关于使用头文件时程序包含哪些内容的信息。
标头中的所有代码都包含在您的程序中,但是,这并不像听起来那么糟糕:大多数编译器和链接器都可以进行称为"死代码消除"的优化,其中它们删除未使用的代码。
不过,仍然存在一个缺点:由于额外的代码,编译程序所需的时间会增加。