有代码能修改codice_4的值，并假设它永远都只会是codice_5.因此编译器将用类似下列的无限循环替换函数体：void bar_optimized(void) {但是，foo可能指向一个随时都能被计算机系统其他部分修改的地址，例如一个连接到中央处理器的设备的硬件寄存器，上面的代码永远检测不到这样的修改。如果不使用volatile关键字，编译器将假设当前程序是系统中唯一能改变这个值部分（这是到目前为止最广泛的一种情况）。为了阻止编译器像上面那样优化代码，需要使用volatile关键字：stati