[经验分享] 嵌入式 volatile的作用

[复制链接]
4471|27
wilhelmina2 发表于 2024-11-12 11:26 | 显示全部楼层
编译器可能会优化对某个变量的多次读取操作,将其结果缓存起来。
gygp 发表于 2024-11-13 13:08 | 显示全部楼层
对于这些操作,需要使用原子操作或锁。
youtome 发表于 2024-11-13 16:46 | 显示全部楼层
volatile告诉编译器,该变量的值可能在任何时候由硬件或操作系统改变,因此编译器不会对此类变量进行优化假设。
xiaoyaodz 发表于 2024-11-13 18:39 | 显示全部楼层
使用 volatile 关键字可以确保每个线程在访问这些变量时,都会读取最新的值。
youtome 发表于 2024-11-14 19:09 | 显示全部楼层
防止编译器优化              
hilahope 发表于 2024-11-20 18:00 | 显示全部楼层
如果多个任务共享一个标志变量,使用volatile可以防止编译器对该变量进行缓存
sdCAD 发表于 2024-11-20 19:29 | 显示全部楼层
volatile并不能保证原子性,也不能替代互斥锁等同步机制。
V853 发表于 2024-12-16 19:22 | 显示全部楼层
易失性变量用于标记中断处理可能改变的存储器位置
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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