Доброго всем дня!
наткнулся на неожиданное поведение компилятора MCC18 (для PIC18), по нему значится как "ANSI '89 compatibility"
Привожу тип и получаю разные результаты в зависимости...:
signed char x = 0x88;
unsigned short y = x; // y=0xFF88
unsigned short y = (unsigned short)x; // y=0xFF88
unsigned short y = (unsigned char)x; // y=0x0088
Ранее этот же кусочек кода работал в GCC/ARM, IAR AVR и всегда было
unsigned short y = x; // y=0x0088
Я как человек старой закалки п
UB == баг, в любом случае. Если было бы неуточняемое поведение, то это другое.
Насчет C11 не знаю, когда оно действительно появилось. Но, ИМХО, должно было весьма давно.