当前位置:首页 » 存储配置 » c不支持的存储类别

c不支持的存储类别

发布时间: 2025-02-02 08:55:05

⑴ 2018年3月计算机二级考试C语言考点解析:用户标识符的作用域和存储

2018年3月计算机二级考试C语言考点解析:用户标识符的作用域和存储类

12.1局部变量和全局变量

在函数内部或复合语句内部定义的变量称为局部变量。函数的形参属于局部变量。在函数外部定义的变量称为全局变量。有时,局部变量也称为内部变量,全局变量也称为外部变量。

12.2变量的存储属性(自动、静态、寄存器、外部),变量的作用域和生存期

C语言中来说明变量存储属性的关键字有四个:auto(自动)、static(静态)、register(寄存器)、extern(外部)。

1.局部变量的存储属性

局部变量可以是自动类别(用auto,register说明),也可以是静态类别(用static说明)。形参只能是自动存储类别,不允许是static类别。

当局部变量未指明类别时,被自动说明成自动(auto)变量。这类局部变量称为自动变量。其值存放在内存的动态存储区,因此在退出作用域后,变量被自动释放,其值不予保留。

当局部变量说明成寄存器(register)类型时,与自动(auto)变量一样属于自动类别,所不同的是此时变量的值保留在CPU中的寄存器中。

当变量说明成static(静态)类型时,称这样的变量为静态局部变量。在程序运行期间,它占据一个永久的存储单元,在函数退出后,变量的值仍旧保留。

2.全局变量的存储属性

全局变量都属于静态存储类别,可以用extern和static对它们进行说明。

当一个文件中要引用另一文件中的全局变量或在全局变量定义前要引用它时,可用extern说明。相当于扩大全局变量的作用域。

用static(静态)说明的全局变量称为静态全局变量,它仅能由本文件引用,即使在其文件中用extern说明也不能使用,它相当于限制了全局变量作用域的扩展。

12.3内部函数和外部函数

1.在C语言中,所有的函数在本质上都是外部函数。

2.函数定义时用extern进行说明称为外部函数。函数的隐含类别为外部函数,外部函数可以被其他文件调用。

3.定义函数时用static进行说明称为静态函数,也称内部函数。静态函数也是外部函数,只是它仅局限于它所在的文件,其他文件不能调用。

⑵ 函数的隐含存储类别是()

函数的存储类型指的是其他文件模块可否访问,其类别可以是extern或static。

static是指该函数只能被本源程序文件道中的模块访问。extern是指可被本源程序文件外的模块访问。

C语言中函数的存储类型隐含为版全局的,因此默认为extern。

函数内定义的变量,默权认作用域在本函数内,即其类型是auto。

(2)c不支持的存储类别扩展阅读:

在C语言中,提供了四种存储类型的存储说明符:auto、Register、Extern和static。这四个存储类别说明符有两个存储术语:自动存储术语和静态存储术语。

“自动”和“寄存器”对应的是自动存储周期。具有自动存储周期的变量在进入声明变量的块时被创建,在块活动时存在,在块退出时被撤销。在函数中定义的变量成为局部变量。在一些C教科书中,局部变量被称为automatic,这与使用可选关键字auto定义局部变量的做法一致。

Extern通常用于变量声明:在*中的另一个文件中引用全局变量。在*.h中应该使用extern来声明全局变量。

⑶ 未指定储存类别的变量其隐含的储存类别是什么

auto。
auto是C语言的关键字之一,用于声明自动变量,即局部变量。当变量未指定存储类别时,其隐含的存储类别默认为auto,也就是自动变量。

⑷ 在C语言中,存储类别包括

TurboC2.0支持四种变量存储类型。说明符如下:
autostaticexternregister
下面分别来介绍。
一、auto
auto称为自动变量。
局部变量是指在函数内部说明的变量(有时也称为自动变量)。用关键字auto进
行说明,当auto省略时,所有的非全程变量都被认为是局部变量,所以auto实际上
从来不用。
局部变量在函数调用时自动产生,但不会自动初始化,随函数调用的结束,这
个变量也就自动消失了,下次调用此函数时再自动产生,还要再赋值,退出时又自
动消失。
二、static
static称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。
1.静态局部变量
它与局部变量的区别在于:在函数退出时,这个变量始终存在,但不能被其它
函数使用,当再次进入该函数时,将保存上次的结果。其它与局部变量一样。
2.静态全程变量
TurboC2.0允许将大型程序分成若干独立模块文件分别编译,然后将所有模块
的目标文件连接在一起,从而提高编译速度,同时也便于软件的管理和维护。静态
全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与
全程变量的区别是:全程变量可以再说明为外部变量(extern),被其它源文件使用,
而静态全程变量却不能再被说明为外部的,即只能被所在的源文件使用。
三、extern
extern称为外部变量。为了使变量除了在定义它的源文件中可以使用外,还要
被其它文件使用。因此,必须将全程变量通知每一个程序模块文件,此时可用
extern来说明。
四、register
register称为寄存器变量。它只能用于整型和字符型变量。定义符register说
明的变量被TurboC2.0存储在CPU的寄存器中,而不是象普通的变量那样存储在内
存中,这样可以提高运算速度。但是TurboC2.0只允许同时定义两个寄存器变量,
一旦超过两个,编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量
来处理。因此,寄存器变量常用在同一变量名频繁出现的地方。
另外,寄存器变量只适用于局部变量和函数的形式参数,它属于auto型变量,
因此,不能用作全程变量。定义一个整型寄存器变量可写成:
registerinta;
对于以上所介绍的变量类型和变量存储类型将会在以后的学习中,通过例行程
序中的定义、使用来逐渐加深理解。

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:430
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:555
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:742
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:534
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:144
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:231
java驼峰 发布:2025-02-02 09:13:26 浏览:649
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:530
linuxadobe 发布:2025-02-02 09:09:43 浏览:210
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:725