linux下global,static,const,local变量存放区域
来源:互联网 发布:淘宝订单进度条 编辑:程序博客网 时间:2024/06/06 04:23
linux下,可执行文件格式是ELF格式,程序中数据在逻辑上大致可以分成下面几个大的区域:其中Data区域其实可以进一步细分为更多section,下面我们具体看看通过objdump命令查看各种变量分布位置
Ÿ Text: 执行的指令序列流,是只读内存区(编译期就决定了其内容);.
Ÿ Data: 程序所使用的静态变量和全局变量区(编译期就决定了其内容);
Ÿ Heap: 堆,进程动态申请的内存区,使用new,malloc操作申请的内存;
Ÿ Stack:栈,动态增长和收缩的内存区,函数参数,返回值,调用栈,局部变量存放区域;
- static int val_a = 1; // 初始化的静态变量
- int val_b = 2; // 全局变量
- const int val_c = 3; // const 全局变量
- static int val_d; // 未初始化的静态变量
- int val_e; // 未初始化的全局变量
- int main(int argc, char *argv[])
- {
- static int val_f = 5; //初始化的局部静态变量
- static int val_g; //未初始化局部静态变量
- int val_h = 6; //初始化局部变量
- int val_i; //未初始化局部变量
- const int val_j = 7; //const局部变量
- return 0;
- }
- g++ main.cpp -o test
objdump -t -T test | grep 'val'
000000000060095c l O .data 0000000000000004 _ZL5val_a
000000000060097c l O .bss 0000000000000004 _ZL5val_d
0000000000400678 l O .rodata 0000000000000004 _ZL5val_c
0000000000600980 l O .bss 0000000000000004 _ZZ4mainE5val_g
0000000000600964 l O .data 0000000000000004 _ZZ4mainE5val_f
0000000000600960 g O .data 0000000000000004 val_b
0000000000600978 g O .bss 0000000000000004 val_e
做一下总结
data 区存放初始化的全局变量和静态变量
bss 区存放未初始化的全局变量和静态变量
rodata 区存放只读的数据,const变量
其中 val_h, val_i,是局部变量,在进程启动main函数执行后,在栈里面分配;
val_j 虽然是const 变量,也是在栈里面分配
0
上一篇:linux下so动态库一些不为人知的秘密(中)
下一篇:android jni 的编写一(JNI的静态注册)
相关热门文章
- A sample .exrc file for vi e...
- IBM System p5 服务器 HACMP ...
- 游标的特征
- DB2 9 应用开发(733 考试)认...
- busybox的httpd使用CGI脚本(Bu...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- linux下global,static,const,local变量存放区域
- linux下global,static,const,local变量存放区域
- const、static变量存放位置
- const、static变量存放位置
- const、static变量存放位置
- 【C++】变量存放区域
- PHP变量关键字global/$GLOBAL[]/static
- 静态变量 static 全局变量 global
- VS2010 C++变量初始化global local
- const 和static 变量
- 初始化const, static, const static, static const成员变量
- 初始化const, static, const static, static const成员变量
- c/c++中变量存放的区域
- 应该尽量使用 local 变量而非 global 变量
- 静态变量static和全局变量global
- Local & Global
- Linux系统下的static变量
- static 变量存放在.data还是.bss
- 让你提升命令行效率的 Bash 快捷键 [完整版]
- wireshark过滤语法总结
- Android播放器框架分析 1 .
- jpeg转bmp
- 拷贝构造函数的参数类型必须是引用
- linux下global,static,const,local变量存放区域
- 8.31碰撞触发
- 文件的各种流
- android jni 的编写一(JNI的静态注册)
- activity-alias的使用
- android启动速度优化
- Android ListActivity学习
- 前端浏览器缓存的一些机制和提高性能的方案
- Activity 中view 的布局
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
体彩推荐
体彩足球
體彩
彩福利
体采
休彩
体恤读音
男体恤品牌
女童体恤
体恤衫定做
潮牌体恤
男童体恤衫
带帽体恤
长体恤
体恤单词
体恤英语
体恤英文
体恤拼音
体恤女
男体恤
体恤图片
体恤的意思
diy体恤
高档体恤
boy体恤
速干体恤
纪念体恤
体恤下属
体恤是什么意思
白体恤发黄怎么洗白
体恤衫印照片机器
巴宝莉体恤多少钱
中年男秋装
男秋装
男士秋装
迪奥哪里的
dior怎么样
迪奥服装
迪奥价格
迪奥衣服多少钱
美邦