2010-12-15 7 views
0

ビッグエンディアンとビッグエンディアンを説明している記事では、フォローコードはリトルエンディアンマシン上で実行されているという前提を立てていました。このコードはリトルエンディアンが使用されていると仮定していますか?

「これは、Cの構造体でバイトの切り替えが想定されています」という理由からです。私は前提がどこであるのか分からない。

struct { WORD y; WORD x; } POS;

lparam =(DWORD)POS;

+0

'x'はDWORDのMSBまたはLSBを保持しますか?また、あなたの他の質問にいくつかの回答を受け入れることについて考えてみてください。 – mtrw

+0

私が投稿したのは、この構造体に関する記事全体が言っていることです、それはmsbまたはlsbについて述べています。 –

答えて

1

xがあり、このようにそれについて考えてみよう(0x1234の)とyされる(0x5678)との意図はlparamが(0x12345678の)も持っていることです。

この例のコードでは、リトルエンディアンマシン(0x12345678)の場合はlparamが(0x78 0x56 0x34 0x12)になります。

しかし、ビッグエンディアンのマシンでは、lparamは(0x56781234)(0x56 0x78 0x12 0x34)になります。したがって、このコードはリトルエンディアン用であるという前提で書かれています。

関連する問題