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