Компилятор не может устранить или изменить порядок чтения/записи на volatile
-qualified variables.
Но как насчет случаев, когда присутствуют другие переменные, которые могут быть или не быть volatile
-qualified?
Сценарий 1
volatile int a;
volatile int b;
a = 1;
b = 2;
a = 3;
b = 4;
Может ли компилятор переупорядочить первый и второй, или третий и четвертый присвоения?
Сценарий 2
volatile int a;
int b, c;
b = 1;
a = 1;
c = b;
a = 3;
Тот же вопрос, может ли компилятор переупорядочить первый и второй, или третий и четвертый присвоения?