打印
[开发资料]

关键字volatile含意

[复制链接]
474|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
中国龙芯CDX|  楼主 | 2023-12-16 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关键字volatile有什么含意?

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:

1:并行设备的硬件寄存器(如:状态寄存器)
2:一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3:多线程应用中被几个任务共享的变量

使用特权

评论回复
沙发
AdaMaYun| | 2023-12-16 14:28 | 只看该作者
一个定义为volatile的变量是说这变量可能会被意想不到地改变

使用特权

评论回复
板凳
LOVEEVER| | 2023-12-16 14:43 | 只看该作者
volatile的变量编译器基本上不会进行优化的

使用特权

评论回复
地板
jf101| | 2023-12-19 09:46 | 只看该作者
一个中断服务子程序中会访问到的非自动变量建议使用volatile

使用特权

评论回复
5
OKAKAKO| | 2023-12-19 10:16 | 只看该作者
多线程应用中被几个任务共享的变量使用volatile进行修饰

使用特权

评论回复
6
小小蚂蚁举千斤| | 2023-12-19 10:37 | 只看该作者
一个定义为volatile的变量是说这变量可能会被意想不到地改变

使用特权

评论回复
7
中国龙芯CDX|  楼主 | 2023-12-21 09:09 | 只看该作者
AdaMaYun 发表于 2023-12-16 14:28
一个定义为volatile的变量是说这变量可能会被意想不到地改变

确实是最好修饰一下比较好,尤其是一些特殊情形

使用特权

评论回复
8
中国龙芯CDX|  楼主 | 2023-12-21 09:10 | 只看该作者
OKAKAKO 发表于 2023-12-19 10:16
多线程应用中被几个任务共享的变量使用volatile进行修饰

这个避免非法内存最好修饰一下

使用特权

评论回复
9
星辰大海不退缩| | 2023-12-21 12:30 | 只看该作者
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了

使用特权

评论回复
10
szt1993| | 2023-12-22 12:14 | 只看该作者
并行设备的硬件寄存器应该如何进行编写配置呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

262

主题

2001

帖子

4

粉丝