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

原文约1200字,阅读约需3分钟。发表于:

经常会看到我的技术交流群在讨论一些“奇怪”的问题,其中有好几次我都发现是因为全局变量导致的问题。这些问题实际上是由编译器的优化导致的。

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

相关推荐 去reddit讨论