union {
uint32_t u32;
uint8_t arr[4];
} x;
x.u32 = 12345;
printf("%p, 0x%02x\n", &x.arr[0], x.arr[0]);
printf("%p, 0x%02x\n", &x.arr[1], x.arr[1]);
printf("%p, 0x%02x\n", &x.arr[2], x.arr[2]);
printf("%p, 0x%02x\n", &x.arr[3], x.arr[3]);
0x22cac0, 0x39 0x22cac1, 0x30 0x22cac2, 0x00 0x22cac3, 0x00
printf("htole32(x.u32) = 0x%08x\n", htole32(x.u32));
printf("htobe32(x.u32) = 0x%08x\n", htobe32(x.u32));