您的位置:首页 > 编程语言 > C语言/C++

C语言中的存储类型

2016-03-01 15:44 411 查看
存储类型定义程序中
变量/函数
的范围(可见性)和生命周期。C语言中有四种类型的存储类型

auto

register

static

extern

auto

auto
只能用在函数内,即
auto
只能修饰局部变量,局部变量默认就是
auto


register

register
只能用于局部变量。

register
用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着局部变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的
&
运算符(因为它没有内存位置)。

声明为
register
的局部变量在由内存调入到CPU寄存器后,则常驻在CPU的寄存器中,因此访问
register
局部变量将在很大程度上提高效率,因为省去了变量由内存调入到寄存器过程中的好几个指令周期。

static

static
修饰局部变量表示可以在函数调用之间保持局部变量的值。

static
也可以应用于全局变量和函数,表示全局变量和函数的作用域限制在声明它的文件内。

extern

函数默认就是
extern


extern
修饰变量表示使用的是外部的变量。

只有文件中的全局变量才能被其他文件所
extern


总结

存储类型作用域/说明
auto 局部变量{} 局部变量默认就是auto
register 局部变量{}
static 局部变量整个程序运行期
static 全局变量当前文件
static 函数当前文件
extern 变量
extern 函数函数默认就是extern
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: