当前位置:  技术问答>linux和unix

为什么头文件越多,生成的可执行文件越大?

    来源: 互联网  发布时间:2016-07-27

    本文导语:  比如两个程序 第一个:  test1.c #include  int main(char argc,char **argv) {     int aa;     aa=10; } 第二个:  test2.c int main(char argc,char **argv) {     int aa;     aa=10; } 为什么这两个程序生成的可执行文件大小不一样...

比如两个程序
第一个:  test1.c
#include 
int main(char argc,char **argv)
{
    int aa;
    aa=10;
}

第二个:  test2.c
int main(char argc,char **argv)
{
    int aa;
    aa=10;
}

为什么这两个程序生成的可执行文件大小不一样? 第一个生成的可执行文件大小大约为第二个的1.5倍。

高手解释下,如果有相关资料更好,谢谢!

|
因为include的时候,只是把.h里的东西拷贝过来而已。

|
第一个程序把stdio.h的内容加进去了

|
#include 是预处理命令 在程序编译前会把整个头文件都加到你的源程序里再一起编译。

|
#include  里有一些全局已初始化变量,供一些库函数使用,虽然那些库函数根本没有被调用

可以readelf 来看看到底是那些地方多了

|
真想搞明白 建议你看本书
Linkers & Loaders

|
ls们都说光答案了

|
你程序里加了东西当然变大了,汗。。。。

    
 
 

您可能感兴趣的文章:

  • c#如何生成Excel(.xls和.xlsx)文件
  • 我想问一下,java生成的.class文件能不能通过某种工具生成.exe文件?
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 如何使用arm-uclibc-gcc将.c文件编译生成.a,将.c文件编译生成.cgi?
  • 用JBuilder能将java程序生成exe可执行文件吗?如何生成?
  • 如何指定用javac编译生成类的存放路径。(最好不要告诉我再生成之后再把文件流重新到出这种)
  • 如何为某个内核文件生成.i文件
  • vim生成的.cpp~是什么文件?我使用vim编辑的时候出现了好多.cpp~文件
  • 请问我用程序如何编辑Adobe Acrobat 5.0的pdf文件(生成报表)啊?或者如何才能将已生成的execl报表转换成pdf格式?
  • 用JCreator Compile文件结果找不到生成的class文件
  • 请问,有什么办法可以把html文件生成pdf/excel格式的文件
  • shell脚本剪切文件文件,并生成新文件的问题
  • 怎样生成用“tar zxf 文件“来解压的*.tar.gz文件
  • ********怎么从*.c文件生成*.sl库文件********
  • 请问用GCC 编译,如何生成MAP文件?就是内存的分布映像文件?
  • 根据Hibernte的cfg文件生成sql文件
  • 如何生成任意文件名的.out 文件
  • 实现core文件自动生成配置文件的方法
  • 请问用POI生成Excel文件时,怎么能生成边框线条等?
  • cpp文件如何自动生成Makefile文件
  • 通过shell解析文件,并根据解析内容生成新的文件。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • WinDows8最新版文件夹加密
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • python异常信息堆栈输出到日志文件
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 怎么统计一个文件夹下有多少个文件(不包括文件夹)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • MyEclipse如何查看和设置文件编码格式相关操作
  • linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • 如何删除某个目录下除了指定文件夹之外的所有文件和文件夹


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3