C程序。。内存分配的问题。。。。。。。。。。

sshziliao 2013-02-22 11:56:03
我在百度文库中看到C语言编译过程详解:
http://wenku.baidu.com/view/8976aeb765ce05087632130a.html

其中讲到:编译后的目标文件OBJ由段组成。通常一个目标文件中至少有两个段:
1) 代码段:该段中所包含的主要是程序的指令。该段一般是可读和可执行的,但一般却不可写。
2) 数据段:主要存放程序中要用到的各种全局变量或静态的数据。一般数据段都是可读,可写,可执行的。

那么我想问:
1.编译后的目标文件OBJ的结构是像汇编程序那样,由段组成的吗?(照文中的意思,编译后的OBJ是分段形式的,是由段组成的)。
2.编译后的obj文件有没有堆段、栈段????

还有:全局变量在编译完毕后,其在data area区的逻辑地址(段地址:偏移量)是固定不变的,
从逻辑地址这个角度来说,全局变量的内存地址是不变的。

...全文
154 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
stormier 2013-02-24
引用 3 楼 sshziliao 的回复:
引用 1 楼 gumh 的回复:这些基础的东西还是系统地学习比较好, 靠baidu学习,事倍功半。请问大侠,哪门课程讲这些内容????????
编译原理。堆栈的开辟应该是动态的,不在静态数据段
  • 打赏
  • 举报
回复
牧风 2013-02-24
看汇编原理。
  • 打赏
  • 举报
回复
AnYidan 2013-02-22
自己上网找,早就知道了
  • 打赏
  • 举报
回复
def-macro 2013-02-22
推荐你一本书,《程序员的自我修养——链接 装载与库》,讲得很深入。
  • 打赏
  • 举报
回复
sshziliao 2013-02-22
引用 1 楼 gumh 的回复:
这些基础的东西还是系统地学习比较好, 靠baidu学习,事倍功半。
请问大侠,哪门课程讲这些内容????????
  • 打赏
  • 举报
回复
赵4老师 2013-02-22
windows:dumpbin xxx.obj linux:objdump xxx.o
  • 打赏
  • 举报
回复
prajna 2013-02-22
这些基础的东西还是系统地学习比较好, 靠baidu学习,事倍功半。
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2013-02-22 11:56
社区公告
暂无公告