Как этот код предполагает, что используется 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). Поэтому этот код был написан с предположением, что он был для порядка байтов.