Доброго всем дня!
наткнулся на неожиданное поведение компилятора 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, и на то оно UB, чтобы не гарантировать вообще ничего.
UB в одном месте запросто может перескочить чуть дальше по коду, выкинуть что-то правильное и добавить не правильного. Как карта ляжет.