我很困惑如何在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保持不變)。請解釋。