2010-12-15 8 views
0

In einem Artikel, der wenig versus big endian erklärt, sagte es, dass der folgende Code die Annahme machte, dass es auf einer kleinen endian Maschine lief.Wie wird dieser Code unter Verwendung von Little Endian verwendet?

Der Grund für die Annahme ist "Das Umschalten der Bytes wird in der 'C' Struktur angenommen." Ich verstehe nicht, wo die Annahme ist.

Struktur { WORT y; WORT x; } POS;

lparam = (DWORD) POS;

+0

Erwarten Sie, dass 'x' das MSB oder das LSB des DWORDs enthält? Vielleicht möchten Sie auch darüber nachdenken, einige Antworten auf Ihre anderen Fragen zu akzeptieren. – mtrw

+0

Was ich gepostet habe, ist, was der Artikel in seiner Gesamtheit bezüglich dieser Struktur sagt, sagt es über msb oder lsb. –

Antwort

1

Denk darüber dies wie, x ist (0x1234) und y ist (0x5678) und die Absicht ist, haben lparam (0x12345678) sein.

Der Code aus dem Beispiel bewirkt, dass lparam (0x78 0x56 0x34 0x12) auf einer kleinen Endian-Maschine ist, die wie vorgesehen (0x12345678) ist.

Allerdings wird auf einem großen Endian-Maschine lparam (0x56 0x78 0x12 0x34) sein, die (0x56781234) ist. Daher wurde dieser Code unter der Annahme geschrieben, dass er für Little Endian gedacht war.