#include <stdio.h>
int main(void)
{
int mins = 10;
int formu = 6 * mins;
printf("Input: %x\n", mins);
printf("Result: %x\n", formu);
}
導致以下:爲什麼C代碼返回大於10的數字作爲字母?
Input: a
Result: 3c
我相信,由於某種原因,該類型中的一種,如果不能兼顧,正在生成一個「雙」,並把在「內部」導致一個conflict.When我改變無論是「%X」到「分鐘」或「formu」我得到了以下錯誤:
error: data argument not used by format string [-Werror,-Wformat-extra-args]
printf("Input: %mins\n", mins);
~~~~~~~~~~~~~~~~^
- 爲什麼編譯器假設我需要一張?
- 這是數字大於10的原因導致字母轉換的原因嗎?
由於
你問問十六進制是如何工作的? –
不,不是真的。我只是困惑於爲什麼它在十六進制輸出。很抱歉,如果它太明顯 - 我對編碼相當陌生。 – HakBon
正如其他人現在指出的那樣 - 它以十六進制輸出,因爲您要求它以十六進制輸出(即使這不是您的意圖)。 –