C语言之--volatile关键字
2017-05-23 17:48
169 查看
volatile指令关键字,作用为确保本条指令不会被编译器优化,表明变量有可能会被改变,相应的变量应直接存取至原始内存地址。
在一个线程内,当读取一个变量时,为提高存取速率,编译器优化时有时会把变量读取到一个寄存器中,以后直接从寄存器中取值。当变量在本线程内改变时,会把新值copy到寄存器中,保持一致。但若因为其他线程而改变,寄存器中的值未同步改变,会造成实际值与读取值不一致。
volatile常用在以下几种情况:
中断服务程序中修改的供其他程序检测的变量
多任务环境下,各任务间共享的标志
存储器映射的硬件寄存器
在一个线程内,当读取一个变量时,为提高存取速率,编译器优化时有时会把变量读取到一个寄存器中,以后直接从寄存器中取值。当变量在本线程内改变时,会把新值copy到寄存器中,保持一致。但若因为其他线程而改变,寄存器中的值未同步改变,会造成实际值与读取值不一致。
volatile常用在以下几种情况:
中断服务程序中修改的供其他程序检测的变量
多任务环境下,各任务间共享的标志
存储器映射的硬件寄存器
相关文章推荐
- c语言中volatile关键字含义
- 【C语言复习(一)】auto、static、register、const、volatile关键字的分析
- 我的小小学习笔记(2)之C语言——浅谈关键字 const,static,volatile(1)
- C语言Volatile关键字的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- C语言再学习 -- 关键字volatile
- 关键字volatile在c语言下的理解
- 通过实例理解:C语言 volatile 关键字
- (转)c语言中volatile关键字的作用
- 解读关键字volatile(C语言面试题分析之一)
- C语言之auto、static、register、const、volatile、extern关键字
- 详解C语言中volatile关键字
- 你了解C语言中的关键字volatile吗?
- C语言中关键字auto、static、register、const、volatile、extern的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用