Меня смущает, как продвижение типов происходит в случае printf и вообще.Я попробовал следующий код
unsigned char uc = 255
signed char sc = -128
printf("unsigned char value = %d \n", uc);
printf("signed char value = %d \n", sc);
Это дает следующий вывод:
unsigned char value = 255
signed char value = -128
Это заставило меня задуматься о том, как на самом деле происходит продвижение и происходит ли расширение знака или нет.Если расширение знака выполнено, тогда значение 255 должно быть напечатано как отрицательное значение (-128 остается неизменным), а если расширение знака не выполняется, то -128 должно быть напечатано как положительное значение (255 остается тем же).Пожалуйста, объясните.