2010-12-15 30 views
0

在一篇解釋小寫字母和大寫字母的文章中,它說下面的代碼假設它是在一個小端機器上運行的。這段代碼如何被假設使用little endian?

它假設的原因是「在'C'結構中假定字節的切換。」我不明白這個假設在哪裏。

struct { WORD y; WORD x; } POS;

lparam =(DWORD)POS;

+0

你期望'x'能保存DWORD的MSB或LSB嗎?另外,你可能想考慮在你的其他問題上接受一些答案。 – mtrw 2010-12-15 20:38:49

+0

我發佈的是文章中關於這個結構體的全部內容,它說msb或lsb。 – 2010-12-15 20:41:26

回答

1

想想這樣,x(0x1234)和y是(0x5678),意圖是使lparam成爲(0x12345678)。

示例中的代碼將導致lparam(0x78 0x56 0x34 0x12)在一個小端機器上,它是(0x12345678)按預期方式。

然而,在大端機器lparam將是(0x56 0x78 0x12 0x34)這是(0x56781234)。因此,這段代碼是在假定它是小端的情況下編寫的。