C语言中的volatile类型修饰符
volatile的核心作用,就是告诉编译器:这个变量的读写是有外部副作用的,不能优化、不能缓存、不能重排,必须按代码写的顺序真实执行每一次访问。
例如:
#include<stdint.h>typedefstruct{volatileuint32_tACR;volatileuint32_tPDKEYR;volatileuint32_tKEYR;volatileuint32_tOPTKEYR;}FLASH_TypeDef;volatile的核心作用,就是告诉编译器:这个变量的读写是有外部副作用的,不能优化、不能缓存、不能重排,必须按代码写的顺序真实执行每一次访问。例如:
#include<stdint.h>typedefstruct{volatileuint32_tACR;volatileuint32_tPDKEYR;volatileuint32_tKEYR;volatileuint32_tOPTKEYR;}FLASH_TypeDef;