Это может быть глупый вопрос, но может кто-нибудь предоставить стандартную ссылку для C++11 и C11:
char
по умолчанию -повышен до int
?
Вот небольшая предыстория :И в C, и в C++ есть понятие продвижения аргумента по умолчанию(С++ 11 :5.2.2/7; C11 :6.5.2.2/6 ). Это означает, что в следующем вызове аргументы продвигаются:
void f(int,...);
float a = 1; short int b = 2; char c = 'x';
f(0, a, b, c);
Для вызова функции a
преобразуется в double
, а b
преобразуется в int
. Но что происходит с c
? У меня всегда было впечатление, что char
также повышается до int
, но я не могу найти соответствующее утверждение в стандартах.