Это может быть глупый вопрос, но кто-то может предоставить стандартную ссылку для С++ 11 и C11:
Является ли char
стандартным для int
?
Здесь немного предыстории: и 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
, но я не могу найти соответствующее утверждение в стандартах.