程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 淺析C說話中的內存結構

淺析C說話中的內存結構

編輯:關於C++

淺析C說話中的內存結構。本站提示廣大學習愛好者:(淺析C說話中的內存結構)文章只能為提供參考,不一定能成為您想要的結果。以下是淺析C說話中的內存結構正文


本節重視分清幾個概念:.text .data .bss   堆   棧    靜態存儲區    只讀存儲區等

從法式到a.out 把法式釀成.text  .data  .bss  是編譯道理完成的進程

從a.out把法式映照到對應的內存地址空間是操作體系完成的,也就是在操作體系創立過程的時刻完成的,在描寫過程的誰人構造體中。

我們常說的堆是為了請求靜態內存的時刻應用的,malloc。

棧是為了在函數中切換應用的,即寄存函數中的部分變量。(堆和棧是操作體系分派的,一切不在a.out中)

靜態存儲區是用來寄存全局變量,靜態變量的,懂得static的用法,即包含.bss段(未初始化的)和.data段(初始化的)。

只讀存儲區是用來寄存一些常量,字符串,只讀的數據的,懂得char * p="hello!!" 不是野指針的緣由。
法式段(.text)是用來寄存可履行代碼的。

總結下:其實只讀存儲區,又叫做代碼區,這個區寄存的是,只讀常量char* p="hello!!"     #define PI 3.14     列舉類型     法式代碼。

所以說普通關於內存可以分紅四個區:堆         棧         靜態區         只讀存儲區        

留意:在棧中 不只僅保留了數據    應當也保留了法式的機械碼  以後就轉換成了.text段了

留意:個中有些不是特殊清楚的成績,如a.out中各段的生成,a.out到內存的映照,a.out映照後的堆和棧是怎樣生成的,依據甚麼生成的?這些成績都是編譯道理和操作體系的常識點。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved