一、
c程式的記憶體分布
既然static是用來修飾變數和函式的,而變數和函式又是組成
c程式必不可少的,
c程式的
記憶體分布圖如下。 c
程式由下面5
部分組成: 1
)正文段
——cpu
執行的機器指令部分;乙個程式只有乙個副本;唯讀,防止程式由於意外事故而修改自身指令;
2)初始化資料段(資料段)
——在程式中所有賦了初值的全域性變數,存放在這裡。
3)非初始化資料段(
bss段)
——在程式中沒有初始化的全域性變數;核心將此段初始化為0。
4)棧——5)堆
——動態儲存
區。是向高位址擴充套件的資料型別,是自下向上的擴充套件方式。
c程式記憶體分布圖
上面的c程式分布圖很明顯的告訴我們,變數是儲存在棧區或者堆區或者bss段或者data段,變數的儲存域為什麼會有所不同呢?其實原因很簡單,說白了就 是與他們定義在程式的不同地方,有沒有static關鍵字修飾有關啦,定義在不同的地方也說明了他們有著不同的作用域。
C程式的記憶體分布
目錄 1.c程式記憶體分布 2.示例詳解 2.1檢視記憶體分布 2.2未初始化全域性變數 2.3未初始化靜態變數 2.4已初始化靜態變數 2.5初始化全域性變數 乙個典型的c程式的記憶體布局包含下面幾個部分 1 text segment code segment 文字 段 2 initialized...
C程式記憶體分布
1 棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數值等。2 堆區 heap 一般由程式設計師分配釋放,隨叫隨到,揮之即走。3 全域性 靜態區 static 全域性變數和靜態變數的儲存是放在一起的,在程式編譯時分配。4 文字常量區 存放常量字串。5 程式 區 存放函式體 包括類的...
C 程式記憶體分布
程式中變數的記憶體分配方式 程式執行時需要占用多大的空間需要在編譯時確定,便於作業系統為程式分配適當的記憶體空間。從靜態儲存區分配 程式的全域性變數和靜態變數都在這裡分配,且在編譯時已經分配好,在程式終止前被作業系統 在棧上建立 在函式呼叫時,函式的形參和區域性變數都在棧上建立,函式執行完畢時這些記...