In der folgenden Verknüpfung: http://msdn.microsoft.com/en-us/library/ms684122(VS.85).aspx, heißt es, dass "Einfache Lese- und Schreibvorgänge in ordnungsgemäß ausgerichteten 32-Bit-Variablen atomare Operationen sind". Ich frage mich, ob in einem C++ Programm alle 32-Bit Variablen standardmäßig richtig ausgerichtet sind. Anders gesagt gibt es einen Fall, in dem eine 32-Bit-Variable nicht richtig ausgerichtet werden konnte.Gibt es Fälle, in denen eine 32-Bit-Variable nicht richtig ausgerichtet werden konnte
5
A
Antwort
1
Wenn Sie dem Compiler nichts anderes mitteilen, richtet er die 32-Bit-Variablen korrekt aus.
Sie können Schreibcode, der bei nicht-ausgerichteten Adressen 32-Bit-Variablen Orte (beispielsweise durch eine Anordnung von char
Erstellen und Ihre int eines ungeraden Index in dem Array zu schreiben).
Sie können den Compiler #pragmas auch verwenden, um dem Compiler nicht mitzuteilen, um bestimmte Typen oder Variablen auszurichten.
Aber wenn Sie nichts davon tun, dann werden Ihre Variablen richtig ausgerichtet sein.
3
#pragma pack(1)
struct _not_aligned {
uint8_t a;
uint32_t b; // unaligned 32-bit
};
#pragma pack()
Verwandte Themen
- 1. Warum werden meine Bilder nicht richtig ausgerichtet?
- 2. Liste der Fälle, in denen USING-Anweisung verwendet werden sollte
- 3. Gibt es Fälle, in denen der Destruktor in PHP NICHT aufgerufen wird?
- 4. Gibt es bestimmte Fälle, in denen eine native Textbearbeitung wünschenswerter ist als Regex?
- 5. Optionsfeld nicht richtig ausgerichtet
- 6. Gibt es Fälle, in denen Application.Exit() das FormClosing-Ereignis nicht auslöst?
- 7. Gibt es Fälle, in denen es falsch ist, push_back durch emplace_back zu ersetzen?
- 8. Bilder können nicht in Zeile richtig ausgerichtet werden
- 9. Gibt es Fälle, in denen Python-Threads den gemeinsamen Status sicher manipulieren können?
- 10. Gibt es Fälle, in denen ein "finally" -Konstrukt in C++ nützlich wäre?
- 11. CSS-Boxen nicht richtig ausgerichtet
- 12. Bilder nicht zentriert richtig ausgerichtet
- 13. Mysql Ergebnisse nicht richtig ausgerichtet
- 14. Horizontale divs nicht richtig ausgerichtet
- 15. Warum kinect Farbe und Tiefe werden nicht richtig ausgerichtet?
- 16. WCF für alle Fälle richtig?
- 17. Gibt es Szenarien, in denen C4172 Visual C++ - Warnung nicht als Fehler betrachtet werden sollte?
- 18. CarbonKit CarbonTabSwipeNavigation, Viewcontrollers nicht richtig ausgerichtet
- 19. Zeilenelemente werden nicht ausgerichtet
- 20. Kontrollkästchen sind nicht richtig ausgerichtet. Wie man es repariert?
- 21. JQuery Mobile - Layout ist nicht richtig ausgerichtet
- 22. Fälle, in denen float == und! = Keine direkten Gegensätze sind
- 23. bootstrap Form innerhalb Modal nicht richtig ausgerichtet
- 24. jquery-Tasten sind nicht richtig ausgerichtet
- 25. cURL gibt Host konnte nicht aufgelöst werden
- 26. Liste der Fälle, in denen equals() und hashcode() -Methode intern in Java aufgerufen werden
- 27. Objekte können nicht in AppBar ausgerichtet werden
- 28. Gradle "Konnte Klassencache nicht öffnen" - gibt es eine bessere Lösung?
- 29. TableWrapData: Widgets werden nicht korrekt ausgerichtet
- 30. VS2015: Die Anwendung konnte nicht richtig gestartet werden (0xc000007b)