наткнулся на от iar. смутило Confusing implicit casting: Bit shift an unsigned 32 bit object 15 times 2016-esc-sv-efficient-embedded-programming_mguint32_t a = 0;
a = (1 << 15); // a = 0xFFFF8000
uint32_t b = 0;
b = (1 << 15u); // b = 0x00008000
не встречал такого. Это справедливо для с/с++?