2014-02-26 43 views

回答

1

如果您不告訴編譯器做其他事情,那麼它會正確地對齊32位變量。

它可以(通過創建char數組,數組中寫你的int奇數指數爲例)在非對齊地址的地方32位變量寫代碼。

您也可以使用編譯器#pragmas來告訴編譯器而不是來對齊特定類型或變量。

但是,如果你不這樣做,那麼你的變量將被正確對齊。

3
#pragma pack(1) 
struct _not_aligned { 
    uint8_t a; 
    uint32_t b; // unaligned 32-bit 
}; 
#pragma pack()