C語言存儲模型
阿新 • • 發佈:2017-07-04
ble family 動態存儲 必須 pad 作用 str middle 參考
註:
程序通常把內存分為3個部分:
- 描述方法(三個方面)
作用域 | 代碼塊、函數原型 |
文件作用域 | |
鏈接類型 | 外部鏈接 |
內部鏈接 | |
空鏈接 | |
存儲時期 | 靜態存儲時期 |
動態存儲時期 |
- 變量類型
變量存儲類型 | |||
作用域 | 鏈接類型 | 存儲時期 | C語言存儲模型(類) |
文件 | 外部 | 靜態 | 具有外部鏈接的靜態 |
內部(static) | 具有內部鏈接的靜態 | ||
代碼塊 | 無鏈接 | 靜態(static) | 空鏈接靜態變量 |
動態 | 自動變量 | ||
寄存器(性質與自動變量類似,存儲在寄存器中) |
寄存器 |
- 具有外部鏈接的在其他文件使用前必須以exturn聲明
- 具有靜態存儲期的變量必須使用常量初始化(編譯階段獲得值)
- 命名重復
- 其他函數可能違背意圖將其值改變
程序通常把內存分為3個部分:
- 靜態變量存儲
- 自動變量存儲
- 動態分配變量的存儲
參考文獻:
[1].Prata S. C Primer Plus, 6th Edition[J]. 2014
C語言存儲模型