您的位置:首页 > 编程语言 > C语言/C++

C语言之--volatile关键字

2017-05-23 17:48 169 查看
 volatile指令关键字,作用为确保本条指令不会被编译器优化,表明变量有可能会被改变,相应的变量应直接存取至原始内存地址。

  在一个线程内,当读取一个变量时,为提高存取速率,编译器优化时有时会把变量读取到一个寄存器中,以后直接从寄存器中取值。当变量在本线程内改变时,会把新值copy到寄存器中,保持一致。但若因为其他线程而改变,寄存器中的值未同步改变,会造成实际值与读取值不一致。

  

 volatile常用在以下几种情况:

中断服务程序中修改的供其他程序检测的变量

多任务环境下,各任务间共享的标志

存储器映射的硬件寄存器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言