mutable和volatile

2023-11-13

mutable变量永远处于可变的状态

mutable在类中只能修饰非静态数据成员,即使是在const函数中,甚至是const结构体变量或类对象,其mutable成员也可以被修改

我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰

volatile是一个类型修饰符,它的原意是“易变的”,这种解释容易误导人,我觉得解释为“直接存取原始内存地址”比较合适

volatile修饰的变量,编译器不可对其进行执行期寄存于寄存器的优化,这种特性是为了满足中断,多任务环境各任务间共享的变量的需要,这些变量可能在编译器未知的情况下值被改变,而编译器继续从寄存器去存取该变量的值,就会导致错误的结果
被volatile关键字声明的变量,编译器对访问该变量不再进行优化,直接从内存地址存取

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mutable和volatile 的相关文章

随机推荐

  • 美团面试官问:写一个你认为最好的单例模式?于是我写了7个

    各位CSDN的朋友 如果喜欢我的文章 记得点个关注 方便以后找到我 由于是刚开始创作 推荐量较低 如果不关注 以后就可能找不到我了 面试题 写一个你认为最好的单例模式 面试考察点 考察目的 单例模式可以考察非常多的基础知识 因此对于这种问题
  • 软考-中级-网络工程师-知识点个人总结(九)

    1 CPU部件 运算器 控制器 寄存器 运算器 算术逻辑运算器 累加器 数据缓冲寄存器 状态条件寄存器 控制器 程序计数器 指令寄存器 指令译码器 时序部件 2 测试依据 测试类型 测试内容 测试依据 黑盒测试 功能测试 对软件的每个功能进
  • 小程序里的alert,Toast

    前言 在小程序中的弹框写法和我们在外面直接用是不一样的 他不支持alert 但是有替代的弹框组件 目录 一 原生小程序 原生小程序api 二 vant中的提示框 官网入口 vant api 一 原生小程序 wx showToast titl
  • C# MSChart 中柱状图和X轴自定义标签

    C 中MSChart 里面曲线 柱状图的样式选择是由 chart Series ChartType SeriesChartType Column 来控制的 SeriesChartType列举出了所有的样式 如果要在X轴上显示自己的文本标签
  • ChatGPT和代码智能

    一 ChatGPT 1 ChatGPT的自我介绍 2 ChatGPT的前世 2 1GPT 3是啥 General Pre Training GPT 即通用预训练语言模型 是一种利用Transformer作为特征抽取器 基于语言模型进行训练的
  • 深入理解Google Cast(三)探寻原理

    如何开发一个receiver application 先来简单说一下这个话题 Receiver本质就是一个网页 由html CSS和jacascript开发 如果要自定义receiver application 需要在 Google Cas
  • LaTeX的斜体,粗体

    参考 LaTeX的斜体 粗体 云 社区 腾讯云 写文章的小伙伴应该知道 在文章中 变量是需要斜体的 那么怎么才是斜体呢 首先 在LATEX中 强调可以以斜体形式展现出来 那么强调命令是如何体现的呢 语法 emph 内容 打开Winedit
  • 【翻译】ASF 法律委员会发布贡献者生成式 AI 指南

    中英文对照版请点击 ASF 法律委员会发布贡献者生成式 AI 指南 中英文对照 查看 除非你在过去一年左右的时间里一直生活在岩石之下 否则你很可能已经听说过很多关于生成式人工智能如何快速发展并正在迅速改变我们所熟知的软件行业的事情 虽然猜测
  • python 利用chinese_calendar 获取上一个工作日日期

    截止文章发布chinese calendar版本为1 8 0 大约在每年的11月份更新次年的节假日新版本 import datetime from chinese calendar import is workday def get per
  • 多线程下事务控制

    我篇文章 大数据批量新增or修改太慢太Low 线程池 CountDownLatch CompletableFuture完美解决 弊端就是无法实现事务控制 那么今天他就来啦 需求 大数据平台去获取数据 gt 通过对象组装 gt 插入到对应的表
  • Hibernate中merge()方法的坑

    标题Hibernate的merge方法的原理网上已经有很多篇文章介绍了 执行merge后 如果传入的对象有ID merge会先去数据库通过ID查 若查到则改 若查不到则增 也就是说 相比直接insert或是update 用merge的实现会
  • 执行kubeadm init 安装kubernetes时报错: [ERROR FileExisting-conntrack]: conntrack not found in system path

    使用kubeadin init安装kubernetes时报如下错误 解决方法 yum y install socat conntrack tools
  • STM32基于HAL库的开发与应用(2)GPIO口控制

    一 GPIO口是在单片机开发应用中使用最频繁的一个控制 GPIO口可作为输出高低电平也可以作为输入检测输入电平的高低 1 通常GPIO口输出控制LED灯 有源蜂鸣器等一些只需要高低电平就可以触发的模块 2 通常GPIO口作为输入 用来检测输
  • dz论坛伪静态加http跳转https遗留问题apache配置ssl

    一 首先 申请并且配置好服务器ssl证书 阿里 腾讯都有免费的 同时都有教程 下载apache格式的证书 解压后放到d ssl 目录 打开 D phpStudy Apache conf httpd conf 在最后面添加SSL配置
  • 2.基于原型的聚类方法

    基于原型的聚类方法 文章目录 一 概念 二 K Means 2 1 算法流程 2 2 超参数 2 3 特性 2 4 解析 2 5 K Means 2 6 Python实现 三 K Mediods 3 1 概念 3 2 算法对比 四 特性 一
  • android实现每天定时提醒的功能

    有时开发中有这样的需求 每天几点定时提醒等等 下面就来实现这个功能 首先新建一个广播接收者 public class AlarmReceiver extends BroadcastReceiver Override public void
  • 案例——UDP聊天

    UDP聊天案例 做一个网络编程相关的案例 想着用利用UDP的快速且不用连接的优点做一个聊天室 我们一个聊天程序需要可以接收消息 也要可以发送消息 所以我们的DatagramSocket对象不但需要调用send函数 还需要调用recieve函
  • 【C语言】qsort 快速排序函数(详解+用法+my_qsort函数模拟实现)

    本文详细讲解qsort函数用法 并包含很多知识细节 干活满满 文章目录 qsort函数功能 qsort函数声明 函数指针 qsort函数用法 整型 浮点型 字符型 字符串型 结构体型 my qsort函数模拟实现 qsort函数功能 排序是
  • 【数据分析】基于RFM模型的线上零售中的客户细分(一):客户细分

    基于RFM模型的线上零售中的客户细分 一 简介 RFM模型通常被用来衡量客户价值和客户创利能力 是商业数据分析中的重要工具和手段 这次我将使用RFM模型对线上零售数据进行客户细分 本篇博客是关于客户细分的相关介绍 具体实例项目将在下一篇博客
  • mutable和volatile

    mutable变量永远处于可变的状态 mutable在类中只能修饰非静态数据成员 即使是在const函数中 甚至是const结构体变量或类对象 其mutable成员也可以被修改 我们知道 如果类的成员函数不会改变对象的状态 那么这个成员函数