volatile 关键字用法?不加就一定会出错?

2020-01-10 19:46发布

如题,一直有个疑惑,也没有问,volatile用法,既然不加不会出错(有一些变量确实不加也没问题),为什么要加?
24条回答
darkness27
1楼 · 2020-01-11 08:14.采纳回答
要看变量有没可能被中断或其他线程改变。如果有,而且这个变量被编译器优化过,那可能就导致它某次使用的时候使用缓存里的值而没有重新读取,然而真正的值已被改变过。这就出错了。
kukudi
2楼-- · 2020-01-13 10:30
看编译器优化程度。
not_at_all
3楼-- · 2020-01-13 13:12
 精彩回答 2  元偷偷看……
pcr386
4楼-- · 2020-01-13 18:30
一次没问题,不代表每次都没有问题。。。
Trylin
5楼-- · 2020-01-13 18:59
代码多测试,应该能体会到这个的用处
caijun2015
6楼-- · 2020-01-13 20:49
编译器不同,优化等级不同,都会导致不一样的结果。另外MPU/MCU的架构不同,在中断里也会导致执行的结果不一样。

一周热门 更多>