Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вещественные типы
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Copypaster
При работе с вещественными типами в IAR возникло следующее недопонимание. В документе EW430_CompilerReference.pdf говорится, что float имеет разрядность 32-бита, а тип double по умолчанию имеет разрядность также 32, либо 64 бита. В процессе отладки на плате наблюдается, что при установке в параметрах проекта размера для типа double в 64-бита, количество значащих цифр увеличивается до 15-ти разрядов, НО тоже наблюдается и для типа float, хотя в документе, насколько я понимаю, заявлено, что установка 64-разрядного размера для double не должна влиять на тип float и для него количество значащих цифр не должно превышать 7.
Кто может, пожалуйста, поясните это противоречие.
VAI
Вы бы пример кода привели.
Про отладчик, что он там показывает, не знаю. Включите генерацию листинга и смотрите, что ИАР Вам сгенерил.
Если включена опция, что double 64 бита, то float занимает 4 байта, double - 8 байт. Но константы по умолчанию типа double, и если в выражениях присутствуют константы, то всё будет считаться в дублях...
Надо ручками приведение типов делать.
Код
(float)1.422725

Дайте пример кода, прямо на нём проще объяснить.
msalov
 
Цитата(VAI @ Oct 14 2009, 06:31) *
Надо ручками приведение типов делать.
Код
(float)1.422725
либо 
Код
1.422725f
Copypaster
Цитата(VAI @ Oct 14 2009, 07:31) *
Надо ручками приведение типов делать.
Код
(float)1.422725

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