全局变量加/不加 volatile 的影响

💡 原文中文,约1200字,阅读约需3分钟。
📝

内容提要

全局变量问题由编译器优化导致。使用关键字“volatile”可以避免优化,确保每次直接读取其值。常见使用情况有访问外设和多线程共享变量。未声明为volatile的变量可能导致代码陷入循环或表现异常。

🎯

关键要点

  • 全局变量问题由编译器优化导致。
  • 关键字'volatile'可以避免优化,确保每次直接读取其值。
  • 使用'volatile'的常见情况包括访问内存映射外设和多线程共享变量。
  • 未声明为'volatile'的变量可能导致代码陷入循环或表现异常。
  • 编译器假定未声明为'volatile'的变量值不会被修改,可能执行不必要的优化。
  • 在不同优化等级和编译环境下,代码的表现可能会有所不同。
➡️

继续阅读