哪位大虾帮忙梳理一下4种存储类别(auto,register,extern,static)和局部/全局变量的关系?

就是以上四种存储类别分别对应的是局部变量还是全局变量?

auto是局部变量,如果你定义一个全局变量为auto存储类型编译器就会报错
resister是寄存器存储,他的访问速度快,但单片机中寄存器的数量较少,程序执行过程中一般作为变量的暂存中介,里面的内容经常会被更改,所以通常是局部变量
extern是外部存储,一般是在当前文件中声明,在另外的文件中定义或者使用,一般为全局的
static是静态存储,他可以是全局的也可以是局部的,全局变量声明为static类型时他作用域只在当前文件中,局部变量声明为static类型时,他的作用域是在当前定义变量的{}内。在C++中static变量一般是整个类的属性。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-10
C语言 auto,可以隐藏,所有未加前缀的都是他
register,寄存器变量,可以直接从寄存器中取出它的当前值
extern,外部变量,类似于类,声明\定义分开的.
static,本文件可见,防止重名.
C++
static,类外本文件可见,防止重名.
类内,静态变量/函数所有对象共享
第2个回答  2011-12-11
auto:肯定是局部变量,函数作用域,系统自动创建和回收
register:一般用于局部变量
extern:声明关键字,只是对变量进行声明,变量定义在其他文件 全局变量使用
static:局部静态- 函数作用域 全局静态 - 本文件作用域 都不能成为全局变量吧本回答被提问者采纳
第3个回答  2011-12-10
博最网 搜索
相似回答