Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
12.09.2011, 12:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,832
Сказал спасибо: 742
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
|
Кодевижен ругается на умножение
Доброго времени, не могу сообразить, что не нравится компилятору.
Простой код.
Код:
|
long int n;
int i;
n=i*100; |
Выдает
Цитата:
|
Warning: C:\cvavreval\121.c(8: overflow is possible in 16 bit multiplication, casting to 'long' may be required
|
Какое может быть переполнение , когда грубо int от -32000 до 32000 и умноженный на 100 32000*100=3 200 000.
А long int имеет диапазон в два миллиарда ?
Или тут что другое, ошибки то нет, горчичник желтый, но хотелось бы разобраться.
__________________
Да здравствует Разум,да сгинет Маразм!
|
|
|
|
12.09.2011, 13:05
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,381
Сказал спасибо: 1,962
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Кодевижен ругается на умножение
а попробуйте написать n = i * 100L
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
12.09.2011, 13:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Кодевижен ругается на умножение
Сообщение от E_C_C
|
casting to 'long' may be required
|
У Вас хоть пишет, MPLAB C30 вообще по тихому отбрасывает старшую часть.
Решается так: n=(long int)i*100;
|
|
|
Сказали "Спасибо" AJScorp
|
|
|
12.09.2011, 18:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,832
Сказал спасибо: 742
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
|
Re: Кодевижен ругается на умножение
Оба способа работают, ещё бы понять что они значат )).
Если с n=(long int)i*100; более менее понятно , тут приведение типов к одному общему.
А вот что дает L на конце ?
__________________
Да здравствует Разум,да сгинет Маразм!
|
|
|
|
12.09.2011, 18:35
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,381
Сказал спасибо: 1,962
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Кодевижен ругается на умножение
Сообщение от E_C_C
|
А вот что дает L на конце ?
|
Да то же самое - что число 100 в формате long int
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:36.
|
|