全局变量加/不加 volatile 的影响
💡
原文中文,约1200字,阅读约需3分钟。
📝
内容提要
全局变量问题由编译器优化导致。使用关键字“volatile”可以避免优化,确保每次直接读取其值。常见使用情况有访问外设和多线程共享变量。未声明为volatile的变量可能导致代码陷入循环或表现异常。
🎯
关键要点
- 全局变量问题由编译器优化导致。
- 关键字'volatile'可以避免优化,确保每次直接读取其值。
- 使用'volatile'的常见情况包括访问内存映射外设和多线程共享变量。
- 未声明为'volatile'的变量可能导致代码陷入循环或表现异常。
- 编译器假定未声明为'volatile'的变量值不会被修改,可能执行不必要的优化。
- 在不同优化等级和编译环境下,代码的表现可能会有所不同。
➡️