C++中voliate关键字

C++中voliate关键字voliate变量是随时变化的,用voliate修饰的运算,编译器不进行优化,以免出错。对于一个普通变量,为提高存取速率,编译器会先将变量的值存储在一个寄存器中,以后再取变量值时,就存寄存器中取出。但是用voliate修饰的变量,就说明这个变量会发生意向不到的改变。也就是说,优化器每次在读取该值时,不会假设这个值了,每次都会小心的在读取这个变量的值,而不是在寄存器中取保留的备份。那么,…

大家好,又见面了,我是你们的朋友全栈君。

voliate变量是随时变化的,用voliate修饰的运算,编译器不进行优化,以免出错。

对于一个普通变量,为提高存取速率,编译器会先将变量的值存储在一个寄存器中,以后再取变量值时,就存寄存器中取出。

但是用voliate修饰的变量,就说明这个变量会发生意向不到的改变。也就是说,优化器每次在读取该值时,不会假设这个值了,每次都会小心的在读取这个变量的值,而不是在寄存器中取保留的备份。

那么,一个参数可以同时被const和voliate修饰吗?
答案是可以的,如:只读的状态寄存器。它是voliate,是因为它可能会发生意想不到的改变;它是voliate,表示程序不应该试图去改变它。

voliate关键字的应用场景
1、中断服务程序中修改的供其它程序检测的变量需要加volatile;
2、多任务环境下各任务间共享的标志应该加volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134639.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • matlab经典版_魔方矩阵matlab

    matlab经典版_魔方矩阵matlabfs=44100;dt=1/fs;T16=0.125;t16=[0:dt:T16];[tempk]=size(t16);t4=linspace(0,4*T16,4*k);t8=linspace(0,2*T16,2*k);[tempi]=size(t4);[tempj]=size(t8);mod4=(t4.^4).*exp(-30*(t4.^0.5));mo…

  • PriorityQueue(优先级队列总结)

    PriorityQueue(优先级队列总结)一,概念队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列 数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(PriorityQueue)二,PriorityQueue的特性Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlo.

  • UCML应用框架平台的特点

    UCML应用框架平台的特点lUCML应用框架平台的特点1.UCML具有集成的、可编译的开发环境(1)该框架具有数据访问对象、业务对象、业务模版、工作流设计、业务规则设计、报表定义等组成部分,涵盖了一个业务系统开发所需的技术实现及细节;(2…

    2022年10月29日
  • 领导含泪叮嘱我:MySQL 建表字段记得用 not null,不然就收拾包袱滚蛋

    领导含泪叮嘱我:MySQL 建表字段记得用 not null,不然就收拾包袱滚蛋上午我收到一条短信,内容是“尊敬的null你好,XXX”,当时我就笑了。真是外行看热闹,内行看门道,这是程序员都能Get的笑点,说明程序没有正确从数据库获取到我的姓名,然后把空值格式化为了null。

  • java获取服务器路径_Java获取此次请求URL以及服务器根路径的方法「建议收藏」

    java获取服务器路径_Java获取此次请求URL以及服务器根路径的方法「建议收藏」本文介绍了Java获取此次请求URL以及获取服务器根路径的方法,并且进行举例说明,感兴趣的朋友可以学习借鉴下文的内容。一、获取此次请求的URLStringrequestUrl=request.getScheme()//当前链接使用的协议+”://”+request.getServerName()//服务器地址+”:”+request.getServerPort()//端口号+…

  • 解决SecureCRT中文显示乱码

    解决SecureCRT中文显示乱码

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号