我有一段简单的c ++代码:
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
当我生成这段代码的程序集时,我得到一个庞大的汇编文件,我认为它是标准库的汇编。为什么会发生这种情况?如何防止它?
答案 0 :(得分:0)
许多标准库都是由模板组成的。当您使用模板时,它会专门供您使用,专业化将成为您的二进制文件的一部分。这是无法避免的,尽管您可以确保仅使用extern模板在单个翻译单元中进行专业化。
答案 1 :(得分:-2)
std :: cout是标准库的一部分。
你用过它。
非常明显。
Iostream是模板,所以代码是在对象中发出的,而不是在共享库中发出,但启用了优化后,(剥离的)大小不应大于实现helloworld所需的大小。
有关其他答案,请参阅http://www2.research.att.com/~bs/bs_faq.html#Hello-world。