关于volatile解决办法

关于volatile在单片机中,普通代码里和中断共享全局变量,用volatile可以解决他们之间的竞争导致的错误吗?[

关于volatile
在单片机中,普通代码里和中断共享全局变量,用volatile可以解决他们之间的竞争导致的错误吗?

[解决办法]
“用volatile可以解决他们之间的竞争”? 不能 !
volatile只是告诉编译器这个变量会变化,不要优化。
对单片机如果变量在一个机器指令内存取完(如BYTE变量)就不会有竞争,但对要几个机器指令内存取完的变量如int(4bytes)就会有竞争问题。