C语言个人思考# volatile有什么作用?一个参数可以同时用const和volatile进行修饰吗?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、volatile的作用?
- 二、volatile,const可否同时修饰一个参数?
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
浅说一些些废话,最近在自学多线程的内容,经常会看到volatile这个关键字,且根据代码实例也不是能够很清晰的理解volatile的作用,很巧的是经过查阅之后发现volatile与const有一些相似之处,所以呢好记忆不如烂笔头,记下来提醒一下自己。
提示:以下是本篇文章正文内容,下面案例可供参考
一、volatile的作用是什么?
三大特性>>(1)保证可见性
(2)保证有序性——防止指令重排序
(3)不保证原子性——未能完全理解,后续找师兄解答
二、volatile,const可否同时修饰一个参数?
答案是可以,用const和volatile同时修饰变量,表示这个变量在程序内部是只读的,不能改变的,只在程序外部条件变化下改变,并且编译器不会优化这个变量。每次使用这个变量时,都要小心地去内存读取这个变量的值,而不是去寄存器读取它的备份。
但是注意:在此一定要注意const的意思,const只是不允许程序中的代码改变某一变量,其在编译期发挥作用,它并没有实际地禁止某段内存的读写特性(const的特性可以会有去看c语言的笔记)。
总结
关键字很重要,如果记不下来要记得拿本子写下来!
C语言个人思考# volatile有什么作用?一个参数可以同时用const和volatile进行修饰吗?相关推荐
- C语言volatile关键字的作用
一.前言 1.编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件告诉缓存Cache,加速对内存的访问.另外在现代CPU中指令的执行并不一定严格按照顺序执行,没 ...
- c语言volatile关键字的作用是什么?
一.前言 1.编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问.另外在现代CPU中指令的执行并不一定严格按照顺序执行,没 ...
- C/C++中volatile关键字的作用
一.前言 编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能, 1)在硬件上: 引入硬件高速缓存Cache,加速对内存的访问.另外在现代CPU中指令的执行并不一定严格按照顺序 ...
- C语言中auto,register,static,const,volatile的区别
1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...
- register,static,extern,const,typedef,volatile关键字
一.register 用register修饰的作用: 请求编译器尽可能(CPU寄存器资源有限)将变量的值保存在CPU内部寄存器中,省去了CPU从内存中抓取数据的时间,提高了程序的运行效率. 何时用re ...
- 转:C++中const、volatile、mutable的用法
const修饰普通变量和指针 const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的.它的含义是:const修饰的类型 ...
- C++中const、volatile、mutable的用法
From: http://blog.csdn.net/wuliming_sc/article/details/3717017 const修饰普通变量和指针 const修饰变量,一般有两种写法: con ...
- 关键字:auto、static、register、const、volatile 、extern 总结
auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...
- [转]C++中const、volatile、mutable的用法
原文:https://blog.csdn.net/imJaron/article/details/79657642 const意思是"这个函数不修改对象内部状态". 为了保证这一点 ...
最新文章
- Win10上rabbitmq 安装
- 用vscode编写静态页面_开发中实用的VSCode插件推荐
- Spring 注解解释
- docker容器内存和CPU使用限制
- Microsoft Edge更新:支持WebVR,使Flash可以即点即运行
- Apache 优化配置10条建议
- 系统集成项目管理工程师(试题分析、考试大纲、教材目录)
- Python 学习笔记->《流畅python》学习
- 多旋翼无人机飞控系统设计之详细设计方案
- 黑马vue电商后台管理系统总结
- linux清除密码记录
- 使用EXCEL计算并绘制MACD指标
- java计算机毕业设计学生宿舍信息管理源程序+mysql+系统+lw文档+远程调试
- 绝对把老师气到撞墙的答卷和大学宿舍里出现频率最高的话
- 炉石传说 疯狂爆破者空场炸死2个精灵龙的概率
- Pr 入门教程如何调整肤色?
- 计算机中文字体的独创性,计算机中文字体中单字的著作权保护研究(2)
- 苹果百度手机消息推送服务器,苹果消息推送服务教程
- 微生物群落功能预测工具
- R count函数_R分析之前的数据准备
热门文章
- C++ API 设计 09 第四章 设计
- KubeSphere(v3.1.1)学习---KubeSphere介绍和基于K8S的安装
- 7-14 英文单词排序
- uboot-----borad.c .
- 第四套人民币每个面值种类的消耗分析及潜力种类推测
- android apk xml文件,Android 反编译Apk提取XML文件
- 【龙印】用龙芯1c的硬件pwm产生单个脉冲来驱动步进电机
- 另存为后通过原来的名字还能找到窗体的问题
- GPS定位系统,GPSBDpro-远程车辆视频录像回放
- 判断一个数是否是 2、3、4的幂次方