Цитата(Androliz @ Nov 21 2008, 14:55)

Почему компилятор жалуется, что при сдвиге выход за границы, если размер типа 4 байта?
Потому что тип 0x01 - int (16 бит), тип результата сдвига - тоже int, а значение 0x01<<24 в 16 бит не влезает.
Цитата
Как скомпоновать в uint32_t 4 байта?
a = ( (uint32_t)0x01<<24)|( (uint32_t)0x02<<16)|(0x03<<8)|(0x04);