prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 13.27

为什么我写的一个简单的程序,除了在窗口中打印“Hello, world!”之外几乎什么也不做,编译出来的可执行文件却如此庞大(几百KB)?我应该#include更少的头文件吗?


你看到的是当前(糟糕的)库设计“现状”。随着运行时库积累越来越多的功能(尤其是与图形用户界面相关的),当一个库函数调用另一个库函数来完成其部分工作时(这本应是件好事;库函数就是为此而存在的),调用库中的任何东西(特别是像printf这样相对强大的函数)最终可能会拉入几乎所有其他东西,导致可执行文件臃肿不堪。

#include 更少的头文件可能也无济于事,因为声明你未调用的几个函数(当你 #include 一个你不需要的头文件时,情况大多如此)不应该导致这些函数被放入你的可执行文件中,除非它们实际上被调用了。另请参阅问题 13.25

你或许可以找到并阻止那些不必要地耦合在一起并导致可执行文件臃肿的函数链,或者向你的供应商抱怨要求他们清理库。

参考文献:H&S 第 4.8.6 节 pp. 103-4


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管