1. 程式人生 > >C語言存儲模型

C語言存儲模型

ble family 動態存儲 必須 pad 作用 str middle 參考

  • 描述方法(三個方面)

作用域 代碼塊、函數原型
文件作用域
鏈接類型 外部鏈接
內部鏈接
空鏈接
存儲時期 靜態存儲時期
動態存儲時期
  • 變量類型

變量存儲類型
作用域 鏈接類型 存儲時期 C語言存儲模型(類)
文件 外部 靜態 具有外部鏈接的靜態
內部(static) 具有內部鏈接的靜態
代碼塊 無鏈接 靜態(static) 空鏈接靜態變量
動態 自動變量
寄存器(性質與自動變量類似,存儲在寄存器中)
寄存器
註:
  1. 具有外部鏈接的在其他文件使用前必須以exturn聲明
  2. 具有靜態存儲期的變量必須使用常量初始化(編譯階段獲得值)
全局變量要慎用,原因有兩個:
  1. 命名重復
  2. 其他函數可能違背意圖將其值改變

程序通常把內存分為3個部分:
  1. 靜態變量存儲
  2. 自動變量存儲
  3. 動態分配變量的存儲

參考文獻:

[1].Prata S. C Primer Plus, 6th Edition[J]. 2014

C語言存儲模型