int a; a = 1; a = 2; a = 3; a = 4; volatile 防止编译器优化 如果没有volatile,有可能编译器会自动优化,不执行a = 1; a = 2; a = 3; 会直接执行 a = 4;而对于硬件而言,这是不允许的。 那么,这时候volatile就发挥作用了,不允许编译器去优化这几步。