提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、volatile的作用?
  • 二、volatile,const可否同时修饰一个参数?
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

浅说一些些废话,最近在自学多线程的内容,经常会看到volatile这个关键字,且根据代码实例也不是能够很清晰的理解volatile的作用,很巧的是经过查阅之后发现volatile与const有一些相似之处,所以呢好记忆不如烂笔头,记下来提醒一下自己。


提示:以下是本篇文章正文内容,下面案例可供参考

一、volatile的作用是什么?

三大特性>>(1)保证可见性

(2)保证有序性——防止指令重排序

(3)不保证原子性——未能完全理解,后续找师兄解答

二、volatile,const可否同时修饰一个参数?

答案是可以,用const和volatile同时修饰变量,表示这个变量在程序内部是只读的,不能改变的,只在程序外部条件变化下改变,并且编译器不会优化这个变量。每次使用这个变量时,都要小心地去内存读取这个变量的值,而不是去寄存器读取它的备份。

但是注意:在此一定要注意const的意思,const只是不允许程序中的代码改变某一变量,其在编译期发挥作用,它并没有实际地禁止某段内存的读写特性(const的特性可以会有去看c语言的笔记)。


总结

关键字很重要,如果记不下来要记得拿本子写下来!

C语言个人思考# volatile有什么作用?一个参数可以同时用const和volatile进行修饰吗?相关推荐

  1. C语言volatile关键字的作用

    一.前言 1.编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件告诉缓存Cache,加速对内存的访问.另外在现代CPU中指令的执行并不一定严格按照顺序执行,没 ...

  2. c语言volatile关键字的作用是什么?

    一.前言 1.编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问.另外在现代CPU中指令的执行并不一定严格按照顺序执行,没 ...

  3. C/C++中volatile关键字的作用

    一.前言 编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能, 1)在硬件上:  引入硬件高速缓存Cache,加速对内存的访问.另外在现代CPU中指令的执行并不一定严格按照顺序 ...

  4. C语言中auto,register,static,const,volatile的区别

    1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...

  5. register,static,extern,const,typedef,volatile关键字

    一.register 用register修饰的作用: 请求编译器尽可能(CPU寄存器资源有限)将变量的值保存在CPU内部寄存器中,省去了CPU从内存中抓取数据的时间,提高了程序的运行效率. 何时用re ...

  6. 转:C++中const、volatile、mutable的用法

    const修饰普通变量和指针 const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的.它的含义是:const修饰的类型 ...

  7. C++中const、volatile、mutable的用法

    From: http://blog.csdn.net/wuliming_sc/article/details/3717017 const修饰普通变量和指针 const修饰变量,一般有两种写法: con ...

  8. 关键字:auto、static、register、const、volatile 、extern 总结

    auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...

  9. [转]C++中const、volatile、mutable的用法

    原文:https://blog.csdn.net/imJaron/article/details/79657642 const意思是"这个函数不修改对象内部状态". 为了保证这一点 ...

最新文章

  1. Win10上rabbitmq 安装
  2. 用vscode编写静态页面_开发中实用的VSCode插件推荐
  3. Spring 注解解释
  4. docker容器内存和CPU使用限制
  5. Microsoft Edge更新:支持WebVR,使Flash可以即点即运行
  6. Apache 优化配置10条建议
  7. 系统集成项目管理工程师(试题分析、考试大纲、教材目录)
  8. Python 学习笔记->《流畅python》学习
  9. 多旋翼无人机飞控系统设计之详细设计方案
  10. 黑马vue电商后台管理系统总结
  11. linux清除密码记录
  12. 使用EXCEL计算并绘制MACD指标
  13. java计算机毕业设计学生宿舍信息管理源程序+mysql+系统+lw文档+远程调试
  14. 绝对把老师气到撞墙的答卷和大学宿舍里出现频率最高的话
  15. 炉石传说 疯狂爆破者空场炸死2个精灵龙的概率
  16. Pr 入门教程如何调整肤色?
  17. 计算机中文字体的独创性,计算机中文字体中单字的著作权保护研究(2)
  18. 苹果百度手机消息推送服务器,苹果消息推送服务教程
  19. 微生物群落功能预测工具
  20. R count函数_R分析之前的数据准备

热门文章

  1. C++ API 设计 09 第四章 设计
  2. KubeSphere(v3.1.1)学习---KubeSphere介绍和基于K8S的安装
  3. 7-14 英文单词排序
  4. uboot-----borad.c .
  5. 第四套人民币每个面值种类的消耗分析及潜力种类推测
  6. android apk xml文件,Android 反编译Apk提取XML文件
  7. 【龙印】用龙芯1c的硬件pwm产生单个脉冲来驱动步进电机
  8. 另存为后通过原来的名字还能找到窗体的问题
  9. GPS定位系统,GPSBDpro-远程车辆视频录像回放
  10. 判断一个数是否是 2、3、4的幂次方