所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

c语言中存储类型自动,静态,外部,寄存都是什么意思?

发布时间:2020-04-12 08:40:45

资讯分类:c语言  寄存  静态  存储  变量  局部  声明
c语言中存储类型自动,静态,外部,寄存都是什么意思?

每一个变量和函数都有两个属性:数据类型和数据的存储类型存储类型指的是数据在内存中存储的方式(如静态存储和动态存储)存储类型包括:自动的、静态的、寄存器的、外部的变量声明格式:存储类型说明符 数据类型说明符 变量名,变量名…;根据变量的存储类型,可以知道变量的作用域和生存期 1.自动变量(auto变量)· 局部变量,如果不专门声明存储类别,都是动态地分配存储空间的· 调用函数时,系统会给局部变量分配存储空间,调用结束时就自动释放空间。因此这类局部 变量称为自动变量· 自动变量用关键字auto作存储类别的声明2.静态局部变量(static局部变量)· 希望函数中的局部变量在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值),这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明 用static 声明一个变量的作用是: (1) 对局部变量用static声明,把它分配在静态存储区,该变量在整个程序执行 期间不释放,其所分配的空间始终存在。 (2) 对全局变量用static声明,则该变量的作用域只限于本文件模块(即被声明的 文件中)。3. 寄存器变量(register变量)· 一般情况下,变量(包括静态存储方式和动态存储方式)的值是存放在内存中的· 寄存器变量允许将局部变量的值放在CPU中的寄存器中· 现在的计算机能够识别使用频繁的变量,从而自动地将这些变量放在寄存器中,而不需要程序设计者指定4.外部变量· 一般来说,外部变量是在函数的外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为程序中各个函数所引用。 在一个文件内扩展外部变量的作用域· 外部变量有效的作用范围只限于定义处到本文件结束。如果用关键字extern对某变量作“外部变量声明”,则可以从“声明”处起,合法地使用该外部变量。

留言与评论(共有 0 条评论)
   
验证码:
Top