probedog 发表于 2025-2-22 10:00

哪些场合会用到volatile关键字

当你理解 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

一般寄存器会加,或者就是不让这个变量被修改这种
页: [1]
查看完整版本: 哪些场合会用到volatile关键字