Я смущен о том, как продвижение типа происходит в случае printf и вообще. Я попытался следующий код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 осталось тем же). Пожалуйста, объясни.