我想知道将指向 uint32_t 的指针转换为包含 uint32_t 的联合指针是否会导致 C 中定义的行为,即
typedef union
{
uint8_t u8[4];
uint32_t u32;
} T32;
void change_value(T32 *t32)
{
t32->u32 = 5678;
}
int main()
{
uint32_t value = 1234;
change_value((T32 *)&value); // value is 5678 afterwards
return EXIT_SUCCESS;
}
这是有效的C吗?提前谢谢了。