In folgendem Link: http://msdn.microsoft.com/en-us/library/ms684122(VS.85).aspx wird gesagt, dass "Einfache Lese- und Schreibzugriffe auf korrekt ausgerichtete 32-Bit-Variablen atomare Operationen sind". Ich frage mich, ob in einem C++-Programm alle 32-Bit-Variablen standardmäßig korrekt ausgerichtet sind. Anders ausgedrückt, gibt es einen Fall, in dem eine 32-Bit-Variable nicht korrekt ausgerichtet sein könnte.
Antworten
Zu viele Anzeigen?
Jason Coco
Punkte
77369
Wenn Sie dem Compiler nicht sagen, er solle etwas anderes tun, wird er 32-Bit-Variablen richtig ausrichten.
Sie können Code schreiben, der 32-Bit-Variablen an nicht ausgerichteten Adressen platziert (zum Beispiel durch Erstellen eines Arrays von char
und Schreiben Ihrer int an einem ungeraden Index im Array).
Sie können auch Compiler-#pragmas verwenden, um dem Compiler zu sagen, bestimmte Typen oder Variablen nicht auszurichten.
Aber wenn Sie das nicht tun, werden Ihre Variablen ordnungsgemäß ausgerichtet sein.