C语言程序的内存空间布局-创新互联
C语言程序是编译后的二进制程序,其对目标操作系统依赖性非常强,如:Linux程序无法在Windows系统上直接运行,反之亦然,再如:64位程序无法允许在32位系统。对于C语言程序的内存存储空间的布局,还是需要了解一下的。
成都创新互联网站建设由有经验的网站设计师、开发人员和项目经理组成的专业建站团队,负责网站视觉设计、用户体验优化、交互设计和前端开发等方面的工作,以确保网站外观精美、网站建设、成都网站设计易于使用并且具有良好的响应性。
C语言程序主要分为:正文段,初始化数据段,非初始化数据段,栈,堆等。
正文段:CPU执行机器指令的部分,该段是只读的。
初始化数据段:简称数据段,已初始化的变量(全局,静态局部变量)。
非初始化数据段:简称bss段,这段在二进制可执行文件中不存在,未初始化的(全局,静态变量)。
栈:局部变量,函数调用所保存的信息(如寄存器值)等都保存在栈中。
堆:动态分配的内存,如用malloc,realloc等申请的内存,使用后必须手动释放。
说明:
局部变量是在运行时创建的,他们并不进入a.out
数据段保存在目标文件中
BSS段不保存在目标文件中(除了记录BSS段在运行至所需要的大小)
文本段最容易受优化措施影响
a.out文件的大小受调试状态下变异的影响,但段不受影响
nm -sx a.out命令可查看a.out各段
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前文章:C语言程序的内存空间布局-创新互联
当前链接:http://cdiso.cn/article/iogjo.html