typedef struct{
uint16_t a;
uint16_t b;
} test_str = {0x1234, 0x5678};

と

uint32_t test32 = 0x12345678;

ではメモリ上のデータ並びが違うぞ。
エンディアンは組み込み型にのみ適用される。

構造体のメンバがひっくり返ることはない。