volatile 和 const 是一对关键字。
volatile 表示不让编译器进行优化,每次读取变量的值时,都要重新从内存中读一次。
比如有代码:
//有全局变量int i
i = 0;
i = 1;
i = 2;
i = 3;
编译器会认为:
i = 3;
从而只优化为1条指令。
但假如我正在进行多线程的编程,这样写存在某些合理的理由(这完全鬼扯,但是也只是假设),不希望编译器做这样的优化,那么就可以将变量声明为:
volatile int i;
–END–