C语言学习系列(六)存储类
一、C存储类
存储类定义C程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在他们所修饰的类型之前。for example:auto、register、static、extern。
(一)、auto存储类
auto存储类是所有局部变量的默认存储类。
{int mount;auto int month; }
上面的实例定义了两个带有相同存储类的变量,auto 只能用在函数内,即 auto 只能修饰局部变量。
(二)、register存储类
register存储类用于定义存储在寄存器而不是RAM中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的‘&’运算符(因为他没有内存位置)。
{register int miles; }
寄存器只用于快速访问的变量,比如计数器。还应注意的是,定义register并不意味着变量将被储存在寄存器中,它意味着可能将变量存储在寄存器中,这取决于硬件和实现的限制。
(三)、static存储类
static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。
static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。
static 是全局变量的默认存储类,以下两个变量 (count 和 road) 都有一个 static 存储类。
static int Count; int Road;main() {printf("%d\n", Count);printf("%d\n", Road);}
(四)、extern 存储类
extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。当您使用 'extern' 时,对于无法初始化的变量,会把变量名指向一个之前定义过的存储位置。
当您有多个文件且定义了一个可以在其他文件中使用的全局变量或函数时,可以在其他文件中使用 extern 来得到已定义的变量或函数的引用。可以这么理解,extern 是用来在另一个文件中声明一个全局变量或函数。
extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候。
extern 表示全局变量,即对程序内所有文件可见,类似于Java中的public关键字;
if ( U.read(me.Blog) ) $("#推荐").click();if ( U.copy(me.Blog) ) $("#u Blog").console("原文链接:http://www.cnblogs.com/Grand-Jon/p/7476733.html ");else me.Fuck(U);
转载于:https://www.cnblogs.com/Grand-Jon/p/7476733.html
C语言学习系列(六)存储类相关推荐
- c语言存储类型关键字作用,c语言学习笔记.关键字.存储类型关键字等
关键字const 1.修饰变量. 修饰的对象为常量,只读. 2.修饰指针. const 也可以和指针变量一起使用,这样可以限制指针变量本身,也可以限制指针指向的数据. const 离变量名近就是用来修 ...
- html5学习系列之klm类标签
一.旧标签: (1)<kbd>标签 作用:定义键盘文本,已经被废弃. (2)<label>标签 作用:为inout元素定义标注,特别之处在于它为鼠标用户改进了可用性,如果用户在 ...
- Ruby语言学习系列--基本的ruby语法
Ruby语言学习系列--基本的ruby语法 1. 基本的ruby语法 1.1 变量.常量和类型 1) 定义变量 变量类型 描述 示例 局部变量(或伪变量) 以小写字母或下划 ...
- R语言学习系列之向量化计算
##R语言学习系列之向量化计算 本文主要讲解R语言向量化计算的原理及方法,希望对初学者能够提供帮助. ##一.向量化 什么是向量化计算呢?其实你可以简单的理解成这样:当我们在使用函数或者定义函数的时候 ...
- Android音视频学习系列(六) — 掌握视频基础知识并使用OpenGL ES 2.0渲染YUV数据
系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...
- python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略
python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...
- R语言学习系列之本地数据获取
R语言学习系列之本地数据获取 任何数据分析工作之前,都得把数据先读取进来你才能进行后续的分析工作.所以本文简要介绍在R中如何对本地文件进行获取,希望可以给刚刚接触R语言的同学一点启发. 一.控制台的输 ...
- C语言的5种存储类以及关键字volatile、restrict
<C Primer Plus>读到12章,我的C语言复习进展的挺不错.这一章介绍存储类.连接和内存管理,可以说是重中之重. C的5种存储类: 自动--在一个代码块内(或在一个函数头部作为参 ...
- STM32-USB学习系列(六):USB-HID键盘的实现以及键盘报文描述符的简介
目录 一.整体步骤 二.USB 鼠标HID更改成键盘HID步骤 1.使用STM32CubeMX生成鼠标HID模版,并且进行修改 2.修改HID的接口描述符与报文描述符 3.修改USBD_HID_Set ...
- C基础学习之C 存储类
目录 auto 存储类 register 存储类 static 存储类 extern 存储类 存储类定义 C 程序中变量/函数的范围(可见性)和生命周期.这些说明符放置在它们所修饰的类型之前.下面列出 ...
最新文章
- css中的垂直居中方法
- 005-Python之列表,元组,字符串,bytes及bytearray共有操作
- 深度学习发展简要笔记
- Mysql时间数据分段累加求和案例之子查询与SUM窗口函数
- IOS基础之打砖块项目演练
- Flowable BPMN 用户手册 (v 6.5.0-SNAPSHOT)
- java获取json中某个字段
- SaaS 客户生命周期(逐字稿+PPT)
- 再次挑戰UCOSII内核源码
- win10休眠_这样设置以后,WIN10比WIN7运行更流畅
- service mysqld restart 报错 Redirecting to /bin/systemctl restart mysqld.service
- python读写将excel转换为xml_Python实现将Excel转换成xml的方法示例
- 回顾2020年(1)
- 信息学奥赛一本通(C++)版在线评测系统网址
- Undo log日志详解
- Android浏览器速度测试,四大Android手机浏览器 上网速度实测比较
- 学习Spring之前要先学习什么?
- 译文 [ROM][多国语言][2015.06.11] Lenovo S750 (MTK6589) - andrea_d86-lenovos750-4.2.2
- 先验概率与后验概率的区别(老迷惑了)
- Unsupported operation: dart:isolate is not supported on dart4web