Für {A = a; B = b; }, wird "A = a" vor "B = b" ausgeführt?

AnnehmenA, B, a, undb sind alle Variablen und die Adressen vonA, B, a, undb sind alle unterschiedlich. Dann für den folgenden Code:

A = a;
B = b;

Erfordert der C- und C ++ - Standard explizitA=a strikt ausgeführt werden, bevorB=b? Da die Adressen vonA, B, a, undb sind alle unterschiedlich, dürfen Compiler die Ausführungssequenz von zwei Anweisungen für bestimmte Zwecke wie die Optimierung austauschen?

Wenn die Antwort auf meine Frage in C und C ++ unterschiedlich ist, würde ich gerne beides wissen.

Bearbeiten: Der Hintergrund der Frage ist der folgende. Beim Brettspiel-AI-Design wird zur Optimierung @ verwende lock-less shared-hash table, dessen Richtigkeit stark von der Ausführungsreihenfolge abhängt, wenn wir @ nicht hinzufügvolatile Beschränkung

Antworten auf die Frage(6)

Ihre Antwort auf die Frage