首页 > 代码库 > C语言存储模型

C语言存储模型

  • 描述方法(三个方面)

 
作用域
代码块、函数原型
文件作用域
链接类型
外部链接
内部链接
空链接
存储时期
静态存储时期
动态存储时期
 
  • 变量类型

 
变量存储类型
作用域
链接类型
存储时期
C语言存储模型(类)
文件
外部
静态
具有外部链接的静态
内部(static)
具有内部链接的静态
代码块
无链接
静态(static)
空链接静态变量
动态
自动变量
寄存器(性质与自动变量类似,存储在寄存器中)
寄存器
 
 
注:
  1. 具有外部链接的在其他文件使用前必须以exturn声明
  2. 具有静态存储期的变量必须使用常量初始化(编译阶段获得值)
 
 
全局变量要慎用,原因有两个:
  1. 命名重复
  2. 其他函数可能违背意图将其值改变
 

程序通常把内存分为3个部分:
  1. 静态变量存储
  2. 自动变量存储
  3. 动态分配变量的存储

 

参考文献:

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

C语言存储模型