下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

学习用户标识符的存储类以及作用域

作者:课课家教育     来源: http://www.kokojia.com点击数:1068发布时间: 2018-04-03 14:00:12

标签: C语言二级C语言函数

大神带你学编程,欢迎选课

  C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。今天小编要给大家分享一篇教程,那就是:学习用户标识符的存储类以及作用域。

  一、全局变量以及局部变量

学习用户标识符的存储类以及作用域_C语言_二级C语言_函数_课课家

  大家知道全局变量以及局部变量这两者的定义吗?在这里小编就简单的介绍一下吧。在函数内部又或者是复合语句内部定义的变量,我们将其称之为局部变量。函数的形参属于局部变量。在函数外部定义的变量,我们将其称之为全局变量。有一些时候,全局变量也称为外部变量,局部变量也称为内部变量。

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

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

  1.局部变量的存储属性

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

  局部变量(Localvariables)指在程序中只在特定过程或函数中可以访问的变量。

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

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

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

  2.全局变量的存储属性

  全局变量都属于静态存储类别,能够直接用extern以及static这两者对它们进行说明。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。

  当一个文件里面要引用另一文件里面的全局变量又或者是在全局变量定义前要引用它的时候,大家能够直接使用extern说明。也就是相当于扩大全局变量的作用域。

  用static(静态)说明的全局变量我们将其称之为静态全局变量,它仅仅只可以由本文件引用,即使在其文件里面用extern说明也不可以直接使用,它相当于限制了全局变量作用域的扩展。

  三、内部函数以及外部函数

  在这里大家都需要注意下面三点,具体的如下所示:

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

  2.函数定义的时候,用extern进行说明我们将其称之为外部函数。函数的隐含类别为外部函数,外部函数能够直接被其他文件调用。

  3.定义函数的时候使用static进行说明我们将其称之为静态函数,也称内部函数。除此之外,静态函数也是外部函数,只是它仅仅局限于它所在的文件,其他文件不可以直接调用而已。

  小编总结:

  尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器以及超级电脑等作业平台。关于这篇教程,大家都理解清楚了吗?

赞(13)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程