rw data 、ro data 和 code详解
生活随笔
收集整理的這篇文章主要介紹了
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出的變量=>在可執行文件中不占空間,在該二進制文件作為進程在內存中運行時才為它分配堆空間。
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出的變量=>在可執行文件中不占空間,在該二進制文件作為進程在內存中運行時才為它分配堆空間。
總結
以上是生活随笔為你收集整理的rw data 、ro data 和 code详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 总票房超300亿上热搜 吴京回应:很愧疚
- 下一篇: x86架构备胎来了!Intel全新RIS