最近做的一個東東要移植到其它平臺,一個發(fā)送端和一個接收端允許在不同的平臺,編譯器自然也不一樣,所以struct對齊直接影響程序的正確允許。
默認(rèn)vc的struct是8byte對齊:
如果有這樣的代碼
struct A
{
???something...
}
struct b
{
?A? a;???
??????//因為對齊的原因,這里可能有空隙
something...
}
然后將struct b轉(zhuǎn)化為char*的時候就出現(xiàn)問題了,解決的辦法設(shè)置為1BYTE對齊