2010-12-15 22 views
0

Dans un article expliquant peu par rapport à big endian, il est dit que le code suivant faisait l'hypothèse qu'il fonctionnait sur une petite machine d'endian. La raison pour laquelle il est dit pour l'hypothèse est "La commutation des octets est supposée dans la structure 'C'." Je ne comprends pas où est l'hypothèse.Comment ce code suppose-t-il que le petit boutiste est utilisé?

struct { WORD y; MOT x; } POS;

lparam = (DWORD) POS;

+0

Attendez-vous à ce que 'x' contienne le MSB ou le LSB du DWORD? En outre, vous voudrez peut-être envisager d'accepter des réponses à vos autres questions. – mtrw

+0

Ce que j'ai posté est ce que l'article dit dans son intégralité à propos de cette structure, il est dit à propos de msb ou lsb. –

Répondre

1

Pensez comme ça, x est (0x1234) et y est (0x5678) et l'intention est d'avoir lparam être (0x12345678).

Le code de l'exemple provoquera lparam (0x78 0x56 0x34 0x12) sur un petit ordinateur endian, qui est (0x12345678) comme prévu.

Cependant sur une grosse machine d'endian lparam sera (0x56 0x78 0x12 0x34) qui est (0x56781234). Donc ce code a été écrit avec l'hypothèse que c'était pour le petit boutiste.