在嵌入式中,volatile这个限定词比较特殊
按我个人理解,一个变量可能会在别的代码块被修改,比如说 中断函数中修改这个变量,但是这个变量在附近的代码块却不会被改变,会被编译器优化后,这个变量会被放到寄存器中,所以中断对其修改只是修改ram的变量,但是寄存器的变量并不是实时更新。当然还有其他情况
这个文章讲的不错
http://www.barrgroup.com/Embedded-Systems/How-To/C-Volatile-Keyword
在嵌入式中,volatile这个限定词比较特殊
按我个人理解,一个变量可能会在别的代码块被修改,比如说 中断函数中修改这个变量,但是这个变量在附近的代码块却不会被改变,会被编译器优化后,这个变量会被放到寄存器中,所以中断对其修改只是修改ram的变量,但是寄存器的变量并不是实时更新。当然还有其他情况
这个文章讲的不错
http://www.barrgroup.com/Embedded-Systems/How-To/C-Volatile-Keyword