免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6157 | 回复: 22
打印 上一主题 下一主题

请教几个概念性的东西 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-05 17:45 |只看该作者 |倒序浏览
一个进程有代码段,数据段,堆栈段,代码段放的是程序代码应该没错了。
数据段是放一些全局、静态变量吗?malloc,new所申请的内存是不是也放在这儿的?除此之外,还有什么数据会放在数据段?
堆栈段保存的有哪些数据?调用函数时的压栈数据?函数的返回值是放在这里的?局部变量呢?

还有一个, bbs段指的是什么?(不是说的灌水的那个BBS)

论坛徽章:
0
2 [报告]
发表于 2003-12-05 17:56 |只看该作者

请教几个概念性的东西

不是bbs, 是 bss

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-12-05 18:07 |只看该作者

请教几个概念性的东西

局部变量和返回值都保存在栈中

malloc和new数据保存在堆中

全局,静态和常量保存在bss中

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-12-05 18:45 |只看该作者

请教几个概念性的东西

我认为返回值不是保存在栈上。
是在别的地方(哪里我也不清楚
因为返回时栈的数据可能就被销毁了,
返回值也没了。

论坛徽章:
0
5 [报告]
发表于 2003-12-05 18:52 |只看该作者

请教几个概念性的东西

返回值放在寄存器 eax 中,返回地址才放在栈中。

返回值即使放在栈中也未必不行。因为每个进程拥有自己的栈空间,只要在其它函数运行之前,把返回值取出来就行。栈中的数据一般不会被自动销毁,栈指针动了一下而已,数据还在那里。

论坛徽章:
0
6 [报告]
发表于 2003-12-05 23:03 |只看该作者

请教几个概念性的东西

我看了楼主那些文章,一头雾水,什么寄存器啊,什么栈啊,都不认识`````

如果不懂这些会不会影响学习C语言啊??

望各位大虾给小弟指点迷津~~~~~~~~~

论坛徽章:
0
7 [报告]
发表于 2003-12-06 00:02 |只看该作者

请教几个概念性的东西

呵。。。也许不会有太大的影响 吧。。。。
但是你要设计程序就得了解这些东西哟。。。。祝你好运!!!!!!!!
还是多看看书吧。。。。。

论坛徽章:
0
8 [报告]
发表于 2003-12-06 12:28 |只看该作者

请教几个概念性的东西

soory, 还是有几个问题没弄明白
bss具体指的是什么?
堆是指哪一块存储区?
返回值放在寄存器中我想不太可能吧. 如果函数返回的类型是一个复杂的结构或是一个类, 哪个寄存器放的下?!
如果是我的概念比较混乱,请指教. 因为我对这个确实有些糊涂

论坛徽章:
0
9 [报告]
发表于 2003-12-07 07:42 |只看该作者

请教几个概念性的东西

原帖由 "lcd" 发表:
soory, 还是有几个问题没弄明白
bss具体指的是什么?
堆是指哪一块存储区?


.bss 意为 bolck starded by symbol, 用于保存未初始化的符号. bss 是可执行文件中的一段. 所谓的未初始化是说, 此段仅包含了变量的符号和相关信息, 由于变量具体的值还不知道, 所以未给这些变量分配空间. 在程序被加载时, bss段被扩充(为变量分配空间)并映射到内存中的"未初始化数据区", 而实际上相应的值被统一初始化为 0.

堆和栈都是在程序加载时由系统分配的, 进程在内存中的分布大致如下:

高地址 [环境信息] [栈----->;] [<-------堆] [未初始化数据] [初始化数据] [正文段]低地址.

APUE 中有一节讲进程环境, 把这些东西说了个大概, 有兴趣的可以参考一下.

论坛徽章:
0
10 [报告]
发表于 2003-12-07 07:49 |只看该作者

请教几个概念性的东西

[quote]原帖由 "lcd" 发表:
soory, 还是有几个问题没弄明白
返回值放在寄存器中我想不太可能吧. 如果函数返回的类型是一个复杂的结构或是一个类, 哪个寄存器放的下?!
如果是我的概念比较混乱,请指
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP