在以下鏈接中:http://msdn.microsoft.com/en-us/library/ms684122(VS.85).aspx,據說「簡單地讀取和寫入正確對齊的32位變量是原子操作」。我想知道,如果在一個C++程序中,所有的32位變量默認都是正確對齊的。換句話說,有些情況下32位變量不能正確對齊。是否有32位變量無法正確對齊的情況
5
A
回答
1
如果您不告訴編譯器做其他事情,那麼它會正確地對齊32位變量。
您它可以(通過創建char
數組,數組中寫你的int奇數指數爲例)在非對齊地址的地方32位變量寫代碼。
您也可以使用編譯器#pragmas來告訴編譯器而不是來對齊特定類型或變量。
但是,如果你不這樣做,那麼你的變量將被正確對齊。
3
#pragma pack(1)
struct _not_aligned {
uint8_t a;
uint32_t b; // unaligned 32-bit
};
#pragma pack()
相關問題
- 1. 是否有任何情況下圖像可能無法正確縮放?
- 2. 在這種情況下初始化變量的正確方法?
- 3. 確定是否編譯ELF對象是32位或64位
- 4. MSBuild項目是否有任何方法來確定32位或64位版本的MSBuild是否正在運行?
- 5. 無法正確對齊flexbox與justify-content
- 6. 無法對齊UI項正確
- 7. HTML li無法正確對齊文字
- 8. 無法正確對齊DIV與CSS
- 9. miglayout:無法正確對齊工作
- 10. 水平導航無法正確對齊
- 11. 無法正確對齊printf代碼
- 12. 無法正確對齊視圖
- 13. 對齊情況的LinearLayout
- 14. 32位變量返回64位變量
- 15. XCode 32位無法設置8字節對齊?
- 16. 絕對定位不正確對齊
- 17. 什麼是原子交換兩個無符號32位變量(ULONG)的正確方法?
- 18. 32位變量的溢出
- 19. CSS沒有正確對齊
- 20. UITableView沒有正確對齊
- 21. Transition沒有正確對齊
- 22. JNI C++與Java的32位圖像無法正確顯示
- 23. MySQL空變量不返回正確的情況下
- 24. 正確處理32/64位
- 25. gcc如何確定默認情況下是否生成32位或64位可執行文件?
- 26. 是否有任何情況下用emplace_back替換push_back是不正確的?
- 27. 位圖在RelativeLayout中未正確對齊
- 28. mips是否有32位地址和32位指令?
- 29. 我有一個PHP變量,我必須顯示長度爲3位數的數字是正確對齊
- 30. AUTO_INCREMENT在我的情況下是否正確實施?