我在 32 位嵌入式系统上转换和修改指针时遇到了一个奇怪的问题(具体来说是运行contiki OS的redbee econotag)。
uint32_t array[2];
array[0] = 0x76543210;
array[1] = 0xfedcba98;
uint8_t* point = ((uint8_t*)array)+1;
printf("%08x \n", *(uint32_t*)point );
在我的电脑上输出:
98765432
嵌入式设备上的输出:
10765432
我的计算机的行为与我预期的一样,但是当嵌入式设备到达单词末尾时,它似乎会环绕。为什么会这样?