编译器无法消除或重新排序对volatile限定变量的读/写.
但是,存在其他变量的情况又volatile如何呢?
volatile int a;
volatile int b;
a = 1;
b = 2;
a = 3;
b = 4;
Run Code Online (Sandbox Code Playgroud)
编译器可以重新排序第一次和第二次,第三次和第四次分配吗?
volatile int a;
int b, c;
b = 1;
a = 1;
c = b;
a = 3;
Run Code Online (Sandbox Code Playgroud)
同样的问题,编译器可以重新排序第一个和第二个,或第三个和第四个任务吗?