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