Para {A = a; B = b; }, ¿se ejecutará "A = a" estrictamente antes que "B = b"?

SuponerA, B, ayb son todas variables, y las direcciones deA, B, ayb son todos diferentes Luego, para el siguiente código:

A = a;
B = b;

¿Exigen explícitamente los estándares C y C ++?A=a ser estrictamente ejecutado antesB=b? Dado que las direcciones deA, B, ayb son todos diferentes, ¿se les permite a los compiladores intercambiar la secuencia de ejecución de dos declaraciones para algún propósito, como la optimización?

Si la respuesta a mi pregunta es diferente en C y C ++, me gustaría saber ambas.

Editar: El fondo de la pregunta es el siguiente. En el diseño de IA de juegos de mesa, para la optimización, las personas usantabla de hash compartido sin bloqueo, cuya corrección depende en gran medida del orden de ejecución si no agregamosvolatile restricción.

Respuestas a la pregunta(6)

Su respuesta a la pregunta