I 使用以下代码(IAR 5.60.1)进行测试。
static unsigned long *test_value_p;
静态无符号长整型 test_value_1;
静态无符号长整型 test_value_2;
Static unsigned char array [8]={0x00、0x01、0x02、0x03、0x04、 0x05、0x06、0x07};
test_value_p =(uint32_t *)(&array[1]);
test_value_2 =* test_value_p;
预期输出:TEST_VALUE_2、0x04030201
实际输出: TEST_VALUE_2、 0x03020100
它是否使编译器将存储器地址强制为偶数(TEST_VALUE_2 =* TEST_VALUE_p;)?