当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > c-v关键字

c-v关键字 时间:2018-09-21      来源:未知

c-v关键字就是const-volatile关键字的简写。下面我们来对const与volatile关键字进行一个简单的理解。

Const关键字的作用是声明一个只读变量,其限定一个变量不允许被改变。因此使用const关键字可以提高系统的安全性和稳定性。下图所示的一个例子显示了用const修饰的变量,当你试图对这个变量进行修改的时候,编译器会提示你assignment of read-only variable 'a'。表示该变量是只读的,就像文件是只读是,你无法对其进行写入操作一样。

 

 

Volatile关键字的作用是声明变量在程序执行中可以被隐含的改变,这一改变主要是系统内部进行而非用户进行人为的修改。功能是在编译程序的过程中确保本条指令不会因编译器的优化而省略,且要求每次直接读值。防止编译器对代码进行优化。该关键字常用于以下几种情况:并行设备的硬件寄存器;一个中断服务子程序中会访问到的非自动变量;多线程应用中被几个任务共享的变量。

似乎const这个只读的还有volatile这一可变的关键字是一对矛盾体,但是有一种情况下const与volatile放在一起使用。状态寄存器中const与volatile一起使用。状态寄存器又名条件码寄存器,它是计算机系统的核心部件——运算器的一部分,状态寄存器用来存放两类信息:一类是体现当前指令执行结果的各种状态信息(条件码),如有无进位(CF位)、有无溢出(OV位)、结果正负(SF位)、结果是否为零(ZF位)、奇偶标志位(P位)等;另一类是存放控制信息(PSW:程序状态字寄存器),如允许中断(IF位)、跟踪标志(TF位)等。有些机器中将PSW称为标志寄存器FR(Flag Register)。如图所示

 

 

在标志寄存器中,状态随着系统的运行会发生变化,而状态寄存器的内容也会同时发生变化,因此需要使用volatile来修饰,然而这一状态却不应该被人为的或者非系统的一些程序修改其中的内容,因此同样必须是const只读的。

上一篇:java代码与纯C代码混编完成android应用的开发

下一篇:Java自动装箱和拆箱原理分析

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部