[软件资料] 哪些场合会用到volatile关键字

[复制链接]
 楼主| 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 关键字用于告诉编译器,某个变量可能会被程序之外的因素(如硬件、其他线程等)修改,因此编译器不应对其进行优化。
一切D都好 发表于 2025-3-10 18:29 | 显示全部楼层
硬件寄存器的值可能由硬件设备随时改变,使用 volatile 可以确保每次访问都从寄存器读取最新值,而不是使用缓存值。
gongqijuns 发表于 2025-3-10 19:31 | 显示全部楼层
在多线程环境中,共享变量可能被其他线程修改,使用 volatile 可以防止编译器优化导致读取旧值。
wamed 发表于 2025-3-10 20:42 | 显示全部楼层
在信号处理函数中修改的变量应声明为 volatile,以确保主程序能看到最新的值。
miltk 发表于 2025-3-10 22:47 | 显示全部楼层
一般来说在嵌入式系统中,volatile 常用于确保对特殊内存地址的访问不会被优化。
eleg34ance 发表于 2025-3-10 23:15 | 显示全部楼层
当变量可能被外部因素修改时,使用 volatile 可以防止编译器优化掉看似无用的代码
twinkhahale 发表于 2025-3-11 09:02 | 显示全部楼层
volatile 关键字用于确保变量的可见性,防止编译器优化导致读取旧值。
hight1light 发表于 2025-3-11 10:16 | 显示全部楼层
正常就是不让这个变量不修改而已
星星点点didi 发表于 2025-3-11 13:10 | 显示全部楼层
我觉得就如果不想让这个变量被优化的话,就可以加上
suiziq 发表于 2025-3-11 15:06 | 显示全部楼层
一般寄存器会加,或者就是不让这个变量被修改这种
您需要登录后才可以回帖 登录 | 注册

本版积分规则

486

主题

3268

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部

486

主题

3268

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部