32ビット組み込みシステム(具体的にはcontikiOSを実行しているredbeeeconotag )でポインターをキャストおよび変更するときに、奇妙な問題が発生しました。
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
私のコンピュータは期待どおりに動作しますが、組み込みデバイスは単語の終わりに達するとラップアラウンドするようです。なぜこれが起こるのですか?