Для {A = a; B = B; } будет ли строго выполняться «A = a» перед «B = b»?

предполагатьA, B, a, а такжеb все переменные, и адресаA, B, a, а такжеb все разные. Затем для следующего кода:

A = a;
B = b;

Требуется ли стандарт C и C ++ явноA=a быть строго исполненным доB=b? Учитывая, что адресаA, B, a, а такжеb все ли разные, разрешено ли компиляторам менять последовательность выполнения двух операторов для какой-либо цели, например, для оптимизации?

Если ответ на мой вопрос отличается в C и C ++, я хотел бы знать оба.

Изменить: фон вопроса является следующим. В дизайне AI настольной игры, для оптимизации люди используюттаблица с общим хэшем без блокировки, чья корректность сильно зависит от порядка выполнения, если мы не добавимvolatile ограничение.

Ответы на вопрос(6)

Ваш ответ на вопрос