Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Глюк CodeVision 1.24.8d
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
plan
Привет ВСЕМ! Работаю с CVAVR уже долго,но такой лажи ещё не видел. Создаю пременную float realcod и инициализирую её два раза подряд:один раз realcod=(1-(1/10));, второй раз realcod=0.9;
После компиляции получаю asm файл:
; 673 realcod=(1-(1/10));
__GETD1N 0x3F800000
; 674 realcod=0.9;
__GETD1N 0x3F666666
хотя (1-(1/10))==0.9
Может я чего-то не так делаю или подскажите может в новой версии такой траблы нет.Всем спасибо.
Shurmas
наверно (1-(1/10)) cvavr справедливо обрабатывает как целые числа, вот тут про формы записи чисел roboclub1.narod.ru/05.htm и в хелпе конечно.
plan
Цитата(Shurmas @ Aug 16 2006, 12:32) *
наверно (1-(1/10)) cvavr справедливо обрабатывает как целые числа, вот тут про формы записи чисел roboclub1.narod.ru/05.htm и в хелпе конечно.

Намёк понял.Спасибо. Подправил (1-(1/10.0)) и больному стало легче, но всё-таки непонятно почему компилятор приводит без точки к целочисленному результату и записывает это в переменную float.
Andy Great
Согласно стандарту С поступает компилятор smile.gif
otrog
Цитата(plan @ Aug 16 2006, 14:09) *
Подправил (1-(1/10.0)) и больному стало легче

Всетаки правильнее подправить так:
(1.0-(1.0/10.0))
Для надежности.
plan
Цитата(otrog @ Aug 16 2006, 14:26) *
Всетаки правильнее подправить так:
(1.0-(1.0/10.0))
Для надежности.

Согласен.Так надёжнее. Короче говоря доверяй ,но проверяй и не забывай про стандарты.Спасибо всем.
Shurmas
Цитата(plan @ Aug 16 2006, 15:32) *
Короче говоря доверяй ,но проверяй


просто пишите флот всегда с точкой.
ps1x
Цитата(Shurmas @ Aug 16 2006, 13:32) *
наверно (1-(1/10)) cvavr справедливо обрабатывает как целые числа, вот тут про формы записи чисел roboclub1.narod.ru/05.htm и в хелпе конечно.

а по ссылке оказался злополучный самоучитель....
Andy Great
Цитата
Всетаки правильнее подправить так:
(1.0-(1.0/10.0))
Для надежности.

Согласно стандарта С достаточно одной таблэтки (точки): либо в числителе, либо в знаменателе. Хотя и так пройдет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.