![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Randajad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: 8 Всего: 8 |
Всем привет!
http://liveworkspace.org/code/46e0eaec28a0...3aaf0e31f0c9b62 http://liveworkspace.org/code/0b9fc64ce749...e0f4cb4eb657852 Разные результаты. Почему? Компилятор конструкцию вида:
Превращает в: short k = (short)j + c; Что-ли? |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
Компилятор конструкцию вида, превращает в
short k = (short)((int)j + (int)c); |
|||
|
||||
| Randajad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: 8 Всего: 8 |
Почему int? А если там 64 битные переменные?
|
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
Я точно не помню, но где-то так:
Для проведения любой операции над встроенными типами: если один из операндов больше другого, он кастится в больший тип. если целочисленный операнд меньше int, он как минимум кастится в инт. если операнд с плавающей точкой меньше double, он как минимум кастится в double |
|||
|
||||
| Randajad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: 8 Всего: 8 |
Спасибо большое!
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |