|
|
От: |
Пётр Седов
|
|
| Дата: | 18.10.06 13:20 | ||
| Оценка: | |||
Например, есть переменная типа unsigned char:В.6. Неявное преобразование типов
...
В.6.1. Продвижения
Неявные преобразования, сохраняющие значение, обычно называют продвижениями. Перед тем, как выполнить арифметическую операцию, используется интегральное продвижение — для того, чтобы создать переменные типа int из переменных более "коротких" целых типов.
...
Интегральные продвижения таковы:
char, signed char, unsigned char, short int или unsigned short int преобразуются в int, если int может представить все значения исходных типов; в противном случае они преобразуются в unsigned int.
Продвижения используются как часть обычных арифметических преобразований (§ В.6.3).
...
...
В.6.3. Обычные арифметические преобразования
Эти преобразования выполяются над операндами бинарного оператора, чтобы привести их к общему типу, который потом используется как тип результата:
...
unsigned char n = 10;ostringstream s;
s << n - 20;
assert(s.str() == "-10");