在一篇解释小端与大端的文章中,它说下面的代码假设它是在一台小端机器上运行。
它假设的原因是“在'C'结构中假设字节的切换。”我不明白这个假设在哪里。
结构 { WORD y; WORD x; POS;
lparam =(DWORD)POS;
答案 0 :(得分:1)
这样考虑,x
是(0x1234),y
是(0x5678),目的是让lparam
成为(0x12345678)。
示例中的代码将导致lparam
在小端机器上(0x78 0x56 0x34 0x12),按预期为(0x12345678)。
然而,在大端机器上lparam
将是(0x56 0x78 0x12 0x34),即(0x56781234)。因此,这段代码是在假设它是小端的情况下编写的。