w2001
camouflage.
C++博客
首页
新随笔
联系
聚合
管理
随笔 - 85 文章 - 47 trackbacks - 0
常用链接
我的随笔
我的评论
我参与的随笔
随笔分类
C/C++语言(7)
Linux开发(5)
笔试面试(6)
劳资关系(5)
视频技术(1)
算法设计(4)
随笔档案
2012年4月 (1)
2011年8月 (1)
2011年5月 (1)
2011年2月 (1)
2011年1月 (2)
2010年8月 (1)
2010年6月 (1)
2010年5月 (1)
2010年4月 (2)
2010年2月 (1)
2009年12月 (2)
2009年11月 (4)
2009年10月 (1)
2009年9月 (5)
2009年7月 (2)
2009年6月 (2)
2009年5月 (2)
2009年4月 (5)
2009年3月 (4)
2009年2月 (3)
2009年1月 (1)
2008年12月 (1)
2008年11月 (1)
2008年10月 (2)
2008年9月 (2)
2008年8月 (2)
2008年6月 (1)
2008年5月 (6)
2008年4月 (1)
2008年2月 (1)
2007年11月 (2)
2007年9月 (2)
2007年7月 (1)
2007年4月 (4)
2007年3月 (16)
搜索
最新评论
1. re: OpenGL VBO顶点缓冲的使用
总结的真好
--Rinne
2. re: 判断点是否处于多边形内的三种方法
@gcd0318
角度是有方向的,虽然是四个直角,两个是顺时针,两个是逆时针,它们的和为0
--rcx92
3. re: 判断点是否处于多边形内的三种方法
评论内容较长,点击标题查看
--gcd0318
4. re: 最大子段和问题的动态规划求解
动态规划博大精深!
--胡大正
5. re: STUN检测NAT类型原理(转)
@non
确实应该是“如果相同”
--大雪先生
.bss段和.data段的区别
用cl编译两个小程序如下:
程序1:
int
ar[
30000
];
void
main()
{
......
}
程序2:
int
ar[
300000
]
=
{
1
,
2
,
3
,
4
,
5
,
6
}
;
void
main()
{
......
}
发现程序2编译之后所得的.exe文件比程序1的要大得多。当下甚为不解,于是手工编译了一下,并使用了/FAs编译选项来查看了一下其各自的.asm,发现在程序1.asm中ar的定义如下:
_BSS SEGMENT
?ar@@3PAHA DD 0493e0H DUP (?) ; ar
_BSS ENDS
而在程序2.asm中,ar被定义为:
_DATA SEGMENT
?ar@@3PAHA DD 01H ; ar
DD 02H
DD 03H
ORG $+1199988
_DATA ENDS
区别很明显,一个位于.bss段,而另一个位于.data段,两者的区别在于:全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中;而函数内的自动变量都在栈上分配空间。.bss是不占用.exe文件空间的,其内容由操作系统初始化(清零);而.data却需要占用,其内容由程序初始化,因此造成了上述情况。
相关参考:
http://www.linuxsir.org/bbs/showthread.php?t=204807
posted on 2007-03-13 00:09
w2001
阅读(4591)
评论(0)
编辑
收藏
引用
所属分类:
C/C++语言
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
Windows下SVN最简安装
VC++ 2005 CRT堆调试
glut、glew、CxImage....
指针分析补充
如何查看cl编译器生成的汇编代码?
.bss段和.data段的区别
汉字编码浅析
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理