'Char' повышается до 'int', когда он проходит через C

У меня вопрос. У меня есть строка в моей программе:

sprintf(buff,"Nieznany znak: %d",(char)va_arg(x, const char)); break;

Почему после компиляции у меня появляется ошибка:

error.c: In function 'error':
error.c:30:46: warning: 'char' is promoted to 'int' when passed through '...' [e
nabled by default]
  case 0xfe: sprintf(buff,"Nieznany znak: %d",(char)va_arg(x, const char)); brea
k;
                                              ^
error.c:30:46: note: (so you should pass 'int' not 'char' to 'va_arg')
error.c:30:46: note: if this code is reached, the program will abort

На мой взгляд, все в порядке, почему я не могу сделать это так?

Ответы на вопрос(1)

Ваш ответ на вопрос