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出的变量=>在可执行文件中不占空间,在该二进制文件作为进程在内存中运行时才为它分配堆空间。