全局/静态变量初始化为0放在bss段还是data段
查看次数7650 发表时间2013-06-04 23:04:30
2013-6-4上午去面试,被鄙视了,技术公司大牛的风范,好犀利!不过我这题应该是蒙对了。。 如:static unsigned char s_test = 0;这个静态变量是放到bss段还是data段呢,以下是我编译的结果:(全局变量... |
2013-6-4上午去面试,被鄙视了,技术公司大牛的风范,好犀利!不过我这题应该是蒙对了。。
如:static unsigned char s_test = 0;
这个静态变量是放到bss段还是data段呢,以下是我编译的结果:(全局变量也是如此)
1.看这样子,即使是初始化了,但是初始化的是0,还是放在bss段的
2.这里还有一个问题,即使是全局定义了一个变量,若后面程序不使用的话,还是默认不分配这个变量空间的.
(至少说ARM的ADS编译器是如此,是否具有普遍性,暂时还不知道 - - ! )
3.注:
BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。
注意和数据段的区别,BSS存放的是未初始化的全局变量和静态变量,数据段存放的是初始化后的全局变量和静态变量。
UNIX下可使用size命令查看可执行文件的段大小信息。如size a.out。
(转发请注明转自:学PHP)
相关推荐
- Linux常用的网络命令 (2013-06-04 23:04:30)
- 从程序员到项目经理(4):外行可以领导内行吗 (2013-06-04 23:04:30)
- 网络编程入门笔记1——socket是个什么玩意儿 (2013-06-05 10:04:36)
- C Primer Plus(一) (2013-06-05 10:04:36)
- linux chmod命令 (2013-06-05 10:04:37)
- Qt .pro文件写法学习笔记 (2013-06-04 23:04:30)
- Apache+Mysql+PHP+Mac OS X 10.7 Lion 服务器配置环境 . (2013-06-04 23:04:29)
- Linux下的压缩解压缩命令详解 (2013-06-04 23:04:29)
- make中的一些常见符号 (2013-06-04 23:04:29)
- dig命令使用大全(linux上域名查询) (2013-06-04 23:04:29)
发表评论