volatile无聊?不是吧,这里面以前看过一个解释,
“volatile 是告诉编译器,在编程的时候对这个变量不要使用优化处理,如 int *a,int b;b=(*a)*(*a),对于这种情况,通常编译器为了减少存储的读写时间,会把代码优化为 int*a,int b,int c;
c=*a,b=c*c;因为外部存储器的读写速度赶不上内存的读写速度,这样可以省一次外部存储器的读取时间,从而提高速度,如果使用volatile int *a,则允许在运行期间,数值发生变化”--------引用百度 |