c语言中volatile 的用法

 为什么要用volatile:    首先,编译器读取某内存地址的值,如果是连续两次读取, 而且两次中间没有对这个内存地址值改变。编译器就会直接把上次读取的值拿出来用,  所以如果这个内存地址是 寄存器 或是某 端口 值,随时都有可能改变, 那么久会出错。

    当要求使用volatile修饰一个变量的时候,系统总是重新从变量所在的内存地址读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立即被保存。

原文地址:https://www.cnblogs.com/crazyxu/p/2036494.html