Iostream,当它包含的所有文件,包含的文件等等,最多可累加3000行。
考虑一下hello world程序,它不需要比在屏幕上打印内容更多的功能:
#include <iostream> //+3000 lines right there.
int main()
{
std::cout << "Hello, World!";
return 0;
}
这应该是一段非常简单的代码,但是iostream会在边缘代码中添加3000多行。那么,这些3000多行代码是否真的需要简单地在屏幕上显示一行,如果没有,他们是否创建了一个效率较低的程序,而不是简单地将相关行复制到代码中?
答案 0 :(得分:3)
如果您担心<iostream>
的大小,只要打印一行文字,请尝试<cstdio>
和std::puts()
。
(说真的,为什么人们使用printf()
或cout
时更简单,更快捷的puts()
能够完全符合这个要求?它甚至可以自动附加适当的换行符......)< / p>
在严重应用程序中,<iostream>
的大小和编译时间不会很长。 (另外,正如其他人已经指出的那样,链接器不会链接到未使用的内容。)
编辑:我刚才意识到我没有真正回答这个问题。不,并非所有3000行都是真正需要打印代码行的,但是您会发现几乎不可能找到生成输出行所需的“几行”,因为I / O库源往往是严重相互依赖。除了增加一点编译时间之外,它们不会造成损害 - 因为在链接器阶段丢弃“绒毛”,你的代码效率就会降低。
答案 1 :(得分:1)
它使编译速度变慢(但可以使用预编译的头文件等进行缓解),但是任何体面的链接器都应该删除不需要的东西。
答案 2 :(得分:0)
编译器删除了链接步骤中不需要的所有内容。对编译器充满信心,不需要手动清洁!关于性能如果您在许多cpp文件中使用了许多大标头,请考虑使用预编译标头,这将大大提高编译时间性能(包含的标头已预先解析并重新使用)。
答案 3 :(得分:-2)
在C ++中,代码中未调用的函数不会被编译。