对volatile类型修饰符的理解

1.volatile和const相同都属于类型修饰符,但是两者是对立的。volatile表示修饰的变量可能会被后台程序改变,这种改变是未知的。
变量如果加了volatile修饰,每次对变量进行读取操作时都是从内存中去加载变量的内容,而不是从寄存器中拷贝内容。举个栗子:void main(void){
     int a,b;
    int i=10;
    a=i;

    b=i;

}//在这个a=i,b=i,这个过程中由于没有对i进行过操作,那么在a=i之后,在执行b=i,的过程中,编译器会进行优化,直接从寄存器中拷贝i即i的副本赋值给b;如果这样volatile int i=10;这样修饰变量,每次赋值操作的时候,都会从i的地址中读取。因此volatile可以保证对特殊地址的访问。

2、总结volatile的作用:表示变量是易变的,当用volatile修饰变量时,系统总是从它所在的内存读取数据,即与该变量有关的运算禁止编译器进行编译优化

猜你喜欢

转载自blog.csdn.net/weixin_39674445/article/details/79914965