volatile 实战 - 使用信号实现 sleep 函数
源码
1 |
|
开启优化选项后,程序变成了死循环。从下面的汇编代码,不难发现编译器优化了 sleepFlag 的读取,导致了死循环。


volatile 使用场景总结 [1]
在中断服务程序中进行修改的共享变量
上面中 sleepFlag
就是一个很好的例子。
多线程间共享的变量
对硬件寄存器[2]进行映射的变量
1 |
|
参考
volatile 实战 - 使用信号实现 sleep 函数
http://blog.soul11201.com/2024/06/17/volatile/