Я компилирую этот код с C99 (с некоторыми другими определениями типов, такими как uint32 вместо uint32_t) для старой архитектуры arm.
uint32 x2 = *((uint32 *) &data[t]);
uint32 x3;
memcpy(&x3, &data[t], 4);
printf("%d %d %d %d %d %d", x2, x3, data[t], data[t + 1], data[t + 2], data[t + 3]);
(данные uchar * и имеют длину> t + 4)
но на удивление вывод такой:
-268435454 2 2 0 0 0
что не так с этим кастингом?