volatile

volatile:提醒编译器不要优化

  • volatile的本意是“易变的” 因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化,但有可能会读脏数据。当要求使用volatile声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据

变量值若代表映射到内存中的IO寄存器:要加volatile才能保证每次都从寄存器中加载,是寄存器的即时数据复制,而不是某个寄存器中未更新的旧数据。eg. volatile 端口地址

你可能感兴趣的:(volatile)