STM32 全局变量不加 volatile 而被优化的问题

在一个项目中,使用C语言,首先在一个 A文件中定义了一些全局变量,并赋初值,并在 B文件里引用,并在一个函数中重新赋值。在main函数的起始处中调用该赋值函数,发现并没有被重新赋值。

一般情况下,在中断中使用的全局变量必须要 volatile 修饰,或者一些 IO 口变量必须要 volatile 修饰,但此次发现,即使非中断的情况下,全局变量最好也要用 volatile 修饰,不然就会出现预想不到的错误,这类错误还很难调试,很难排查。

你可能感兴趣的:(C语言,stm32,c语言,stm32,volatile,全局变量)