C Casting from pointer to uint32_t to a pointer to a union containing
uint32_t
I'd like to know if casting a pointer to uint32_t to a pointer of a union
containing a uint32_t will lead to defined behavior in C, i.e.
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;
}
Is this valid C? Many thanks in advance.
No comments:
Post a Comment