реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Глюк CodeVision 1.24.8d, ошибки компилятора
plan
сообщение Aug 16 2006, 08:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 23-12-05
Из: Украина Днепродзержинск
Пользователь №: 12 599



Привет ВСЕМ! Работаю с 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
Может я чего-то не так делаю или подскажите может в новой версии такой траблы нет.Всем спасибо.
Go to the top of the page
 
+Quote Post
Shurmas
сообщение Aug 16 2006, 09:32
Сообщение #2


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



наверно (1-(1/10)) cvavr справедливо обрабатывает как целые числа, вот тут про формы записи чисел roboclub1.narod.ru/05.htm и в хелпе конечно.
Go to the top of the page
 
+Quote Post
plan
сообщение Aug 16 2006, 10:09
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 23-12-05
Из: Украина Днепродзержинск
Пользователь №: 12 599



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

Намёк понял.Спасибо. Подправил (1-(1/10.0)) и больному стало легче, но всё-таки непонятно почему компилятор приводит без точки к целочисленному результату и записывает это в переменную float.
Go to the top of the page
 
+Quote Post
Andy Great
сообщение Aug 16 2006, 10:56
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057



Согласно стандарту С поступает компилятор smile.gif
Go to the top of the page
 
+Quote Post
otrog
сообщение Aug 16 2006, 11:26
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(plan @ Aug 16 2006, 14:09) *
Подправил (1-(1/10.0)) и больному стало легче

Всетаки правильнее подправить так:
(1.0-(1.0/10.0))
Для надежности.


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
plan
сообщение Aug 16 2006, 11:32
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 23-12-05
Из: Украина Днепродзержинск
Пользователь №: 12 599



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

Согласен.Так надёжнее. Короче говоря доверяй ,но проверяй и не забывай про стандарты.Спасибо всем.
Go to the top of the page
 
+Quote Post
Shurmas
сообщение Aug 16 2006, 12:24
Сообщение #7


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



Цитата(plan @ Aug 16 2006, 15:32) *
Короче говоря доверяй ,но проверяй


просто пишите флот всегда с точкой.
Go to the top of the page
 
+Quote Post
ps1x
сообщение Aug 16 2006, 12:44
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



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

а по ссылке оказался злополучный самоучитель....
Go to the top of the page
 
+Quote Post
Andy Great
сообщение Aug 16 2006, 14:31
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057



Цитата
Всетаки правильнее подправить так:
(1.0-(1.0/10.0))
Для надежности.

Согласно стандарта С достаточно одной таблэтки (точки): либо в числителе, либо в знаменателе. Хотя и так пройдет.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01409 секунд с 7
ELECTRONIX ©2004-2016