Как этот код предполагает, что используется little endian?

В статье, в которой объясняется, что порядок байтов мало и наоборот, говорится, что следующий код предполагает, что он работает на машине с прямым порядком байтов.

Причина, по которой говорится это предположение: "Предполагается переключение байтов в структуре" C "". Я не понимаю, где это предположение.

struct {WORD y; СЛОВО x; } POS;

lparam = (DWORD) POS;

1 ответ

Подумай об этом, x есть (0x1234) и y (0x5678), и намерение состоит в том, чтобы lparam быть (0x12345678).

Код из примера вызовет lparam быть (0x78 0x56 0x34 0x12) на машине с прямым порядком байтов, что соответствует (0x12345678), как и предполагалось.

Однако на большой байтовой машине lparam будет (0x56 0x78 0x12 0x34), что составляет (0x56781234). Поэтому этот код был написан с предположением, что он был для порядка байтов.

Другие вопросы по тегам