rw data 、ro data 和 code详解

ARM7+iar+μc/os环境下:

1 .code
.text, 代表程序段

2 .ro data
const变量或字符串常量

3 .rw data
1) .data
    赋值了的全局变量或static变量 、全局数组
2) .bss
    未赋值的全局变量或static变量
3) stack
4) heap


事实上,一个程序从编译到运行,对变量空间分配的情况如下:
A. 赋值了的全局变量或static变量=>放在可执行文件的.data段。
B. 未赋值的全局变量或static变量=>放在可执行文件的.bss段。
C. 代码中出现的字符串常量或加了const的变量=>放在可执行文件的.rodata段。
D. 局部变量=>在可执行文件中不占空间,在该二进制文件作为进程在内存中运行时才为它分配栈空间。
E. 代码中malloc或new出的变量=>在可执行文件中不占空间,在该二进制文件作为进程在内存中运行时才为它分配堆空间。












猜你喜欢

转载自blog.csdn.net/u012247418/article/details/79784124