嵌入式C语言3.4 关键字---类型描述符auto/register/static/const/extern/volatile/
对内存资源存放位置的限定
1. auto
默认值---分配的内存都是可读可写的区域
auto int a;
区域如果出现 {} 我们认为在栈空间
2. register
register int a; 限制变量定义在寄存器上的修饰符
定义快速访问的变量,放在寄存器内计算速度更快!
编译器会尽量的安排CPU的寄存器去寄存这个变量a,如果寄存器不足时,变量a还是会被放在存储器中。
内存(存储器) 寄存器

3. static
静态
应用场景:
修饰3种数据
(1) 函数内部的变量 (修饰局部变量)
int fun()
{
int a ; =====>>static int a; //会改变该变量的生存期,static局部变量只被初始化一次,下一次调用依上一次的结果值
}
(2) 函数外部的变量(修饰全局变量)
int a;===========>> static int a; //会限制全局变量的使用范围,他的作用域就是定义他的源文件,其他源文件无法调用
int fun()
{
}
(3) 函数的修饰符(工程中用的较多) //会改变这个函数的使用范围,其他文件不能调用这个static函数
int fun(); =====》static int fun();
https://blog.csdn.net/qq_37858386/article/details/79064900
4.const 只读变量的定义
只读的变量,不允许再次赋值。const修饰的变量(全局或局部)生命周期是程序的整个运行过程。
这时候会疑惑const和define的区别,两个生命周期都是程序运行过程,但是我们可以初步理解区别在于define宏定义的是常量,可以被修改;但是const修饰的是只读变量,不可修改。
const int a = 100;
http://c.biancheng.net/view/217.html
5.extern
6. volatile
告知编译器编译方法的关键字,不优化编译
嵌入式C语言3.4 关键字---类型描述符auto/register/static/const/extern/volatile/的更多相关文章
- C语言中关键字auto、static、register、const、volatile、extern的作用
原文:C语言中关键字auto.static.register.const.volatile.extern的作用 关键字auto.static.register.const.volatile.exter ...
- 嵌入式C语言3.2 关键字---自定义数据类型
1. struct 结构体 基本语法 struct myabc{ unsigned int a; unsigned int b; unsigned int c; unsigned int d; } 调 ...
- 嵌入式C语言3.5 关键字---运算符
1. 算数运算符 + - A +/- B 要求A,B数据类型一致 * 乘法 / 除法 %取模 乘法CPU可能需要多个周期,甚至需要利用软件的模拟方法来实 ...
- 嵌入式C语言3.3 关键字---逻辑结构
1. if else if(条件表达式){ ****;} else {xxxxxx;} 2. switch case default 3. do while for 4. con ...
- 一、JavaSE语言基础之关键字与标示符
1.关键字 所谓关键字指Java中被赋予了特殊含义的单词或字符,Java中常见的关键字共53个,不需要进行记忆,在写代码的过程中会逐渐接触. 2.标示符 标示符,简单来说就是名字:其最大的作用 ...
- swift的类型描述符
Metatype Types A concrete or existential metatype in SIL must describe its representation. This can ...
- C语言关键字:auto、static、register、const、volatile 、extern 总结 <转>
auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...
- 2、C语言关键字-auto register static
文件限定符的作用: 1.auto : 局部变量,修饰的变量在栈中定义.动态内存,随着函数的结束,变量占用的内存空间也随之释放. 2.register : 寄存器变量,请求编译器将此变量存于cpu寄存器 ...
- Java描述符(修饰符)的类型
以下内容引用自http://wiki.jikexueyuan.com/project/java/modifier-types.html: 描述符(修饰符)是添加到那些定义中来改变他们的意思的关键词.J ...
随机推荐
- deque(双向队列)基本用法
deque(双向队列)基本用法 阅读体验:https://zybuluo.com/Junlier/note/1297030 简单介绍 就是可以两头插元素,两头删元素的数据结构 那么具体的STL操作(只 ...
- yum安装时出现No more mirrors to try.
可能原因:可能是不正常删除造成的 解决方法: yum clean allyum makecacheyum -y update 然后重新安装
- Ajax —— 服务器端发送JSON数据
重点需要解决的问题:服务器端如何构建JSON数据 思考:JavaBean转JSON数据,集合转JSON数据,普通java对象(String,Number)转JSON数据 一.Gson开源jar包 ...
- Ajax异步请求返回文件流(eg:导出文件时,直接将导出数据用文件流的形式返回客户端供客户下载)
在异步请求中要返回文件流,不能使用JQuery,因为$.ajax,$.post 不支持返回二进制文件流的类型,可以看到下图,dataType只支持xml,json,script,html这几种格式,没 ...
- 246-基于TI DSP TMS320C6678、Altera FPGA的CPCI处理卡
基于TI DSP TMS320C6678.Altera FPGA的CPCI处理卡 1.板卡概述 本板卡由我公司自主研发,基于CPCI架构,符合CPCI2.0标准,采用两片TI DSP TMS320C ...
- Linux就该这么学10学习笔记
参考链接:https://www.linuxprobe.com/chapter-10.html 网站服务程序 第1步:把光盘设备中的系统镜像挂载到/media/cdrom目录. [root@linux ...
- TCP和UDP的区别,以及它们对应的协议有哪些?
TCP(传输控制协议) 是面向连接的协议.在收发数据前,一个TCP连接必须要经过“三次握手”建立可靠的连接.握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据.理想状态下 ...
- 没有dockerfile的情况下如何查看docker的镜像信息
前言 参考资料 https://baijiahao.baidu.com/s?id=1564406878758073&wfr=spider&for=pc 很实用的功能哈.. 步骤 1.先 ...
- SpringBoot集成H2database
转载:https://blog.csdn.net/chenhao_c_h/article/details/80332260 h2database为我们提供了十分轻量,十分快捷方便的内嵌式数据库 H2是 ...
- Hadoop的配置文件
hadoop-env.sh:脚本中所用到的环境变量,以运行Hadoop mapred-env.sh:脚本中所用到的环境变量,以运行mapreduce yarn-env.sh:脚本中所用到的环境变量,以 ...