打印
[软件资料]

哪些场合会用到volatile关键字

[复制链接]
261|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probedog|  楼主 | 2025-2-22 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当你理解 volatile关键字的含义之后,你就能明白,其实很多场合都能用到 volatile关键字。
1.全局变量单片机开发,难免会用到全局变量。一些初级工程师,更是全局变量满天飞。这种情况下,使用volatile关键字也许能减少代码bug率。
2.寄存器单片机开发,寄存器添加volatile关键字应该是必须的,如果你平时有仔细观察,正规一点的【库】都会添加volatile关键字。
具体细分的话,代码里面有很多地方都会用到 volatile关键字。

使用特权

评论回复
沙发
LOVEEVER| | 2025-2-23 21:49 | 只看该作者
很多场合都能用到 volatile关键字

使用特权

评论回复
板凳
小小蚂蚁举千斤| | 2025-2-23 22:15 | 只看该作者
寄存器单片机开发,寄存器添加volatile关键字应该是必须的

使用特权

评论回复
地板
teaccch| | 2025-3-10 17:21 | 只看该作者
volatile 关键字用于告诉编译器,某个变量可能会被程序之外的因素(如硬件、其他线程等)修改,因此编译器不应对其进行优化。

使用特权

评论回复
5
一切D都好| | 2025-3-10 18:29 | 只看该作者
硬件寄存器的值可能由硬件设备随时改变,使用 volatile 可以确保每次访问都从寄存器读取最新值,而不是使用缓存值。

使用特权

评论回复
6
gongqijuns| | 2025-3-10 19:31 | 只看该作者
在多线程环境中,共享变量可能被其他线程修改,使用 volatile 可以防止编译器优化导致读取旧值。

使用特权

评论回复
7
wamed| | 2025-3-10 20:42 | 只看该作者
在信号处理函数中修改的变量应声明为 volatile,以确保主程序能看到最新的值。

使用特权

评论回复
8
miltk| | 2025-3-10 22:47 | 只看该作者
一般来说在嵌入式系统中,volatile 常用于确保对特殊内存地址的访问不会被优化。

使用特权

评论回复
9
eleg34ance| | 2025-3-10 23:15 | 只看该作者
当变量可能被外部因素修改时,使用 volatile 可以防止编译器优化掉看似无用的代码

使用特权

评论回复
10
twinkhahale| | 2025-3-11 09:02 | 只看该作者
volatile 关键字用于确保变量的可见性,防止编译器优化导致读取旧值。

使用特权

评论回复
11
hight1light| | 2025-3-11 10:16 | 只看该作者
正常就是不让这个变量不修改而已

使用特权

评论回复
12
星星点点didi| | 2025-3-11 13:10 | 只看该作者
我觉得就如果不想让这个变量被优化的话,就可以加上

使用特权

评论回复
13
suiziq| | 2025-3-11 15:06 | 只看该作者
一般寄存器会加,或者就是不让这个变量被修改这种

使用特权

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

本版积分规则

424

主题

2608

帖子

3

粉丝