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

2020-01-10 19:46发布

如题,一直有个疑惑,也没有问,volatile用法,既然不加不会出错(有一些变量确实不加也没问题),为什么要加?
24条回答
darkness27
1楼 · 2020-01-11 08:14.采纳回答
要看变量有没可能被中断或其他线程改变。如果有,而且这个变量被编译器优化过,那可能就导致它某次使用的时候使用缓存里的值而没有重新读取,然而真正的值已被改变过。这就出错了。
chun2495
2楼-- · 2020-01-11 19:33
比如delay(){(i=0;i<10000;i++)}如果你不把i设为volatile,不选优化没问题,选了优化,系统会认为你写的是废话,直接不delay。
ackyee
3楼-- · 2020-01-11 20:56
定时器 终端里面的变量 必须加 否则在主函数里直接当废话了
654705188
4楼-- · 2020-01-12 00:18
不加就看运气了
javenreal
5楼-- · 2020-01-12 03:05
 精彩回答 2  元偷偷看……
laujc
6楼-- · 2020-01-12 08:29
LZ接触的程序太少,太简单。
所以体会不到volaitle的作用
zhugean
7楼-- · 2020-01-12 12:39
你要看这个变量是否易变,易变的就要加,不易变得就不要加

一周热门 更多>