C内存模型(二)
在上一篇,我讲了C语言的内存整体分区情况,这篇我以表格的形式说明下不同类型的变量在内存的中的存储:
|
类型 |
作用域 |
生命周期 |
存储位置 |
|
auto局部变量 |
一对{}内 |
当前函数 |
栈区 |
|
static局部变量 |
一对{}内 |
整个程序运行期 |
初始化在data段,未初始化在BSS段 |
|
extern变量 |
整个程序 |
整个程序运行期 |
初始化在data段,未初始化在BSS段 |
|
static全局变量 |
当前文件 |
整个程序运行期 |
初始化在data段,未初始化在BSS段 |
|
extern函数 |
整个程序 |
整个程序运行期 |
代码区 |
|
static函数 |
当前文件 |
整个程序运行期 |
代码区 |
|
register变量 |
一对{}内 |
当前函数 |
运行时存储在CPU寄存器 |
|
字符串常量 |
当前文件 |
整个程序运行期 |
data段 |
浙公网安备 33010602011771号