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

 
 
> Проблема sprintf() в IAR C, Проблема sprintf() в IAR C
Dimmy
сообщение Dec 4 2006, 18:35
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 106
Регистрация: 12-09-05
Пользователь №: 8 503



Процессор - Мега16, проект на С, библиотека CLIB.
Необходимо получить из float строку. Дабы использовать ф-ю sprintf() в опциях проекта изменил следующее: Library options->printf formatter->Large (по умолчанию small). Компилю. Получаю ошибку размещения сегмента CSTACK.
Изменяю Memory Model->Small (было Tiny). Компилирую, все ОК... Во время отладки ошибка Stack Underflow.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dimmy
сообщение Dec 4 2006, 23:11
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 106
Регистрация: 12-09-05
Пользователь №: 8 503



Дык вопросов не возникало-бы, если б доока была полноценная. В своих экспериментах я дошел до значения Data stack= 0x80. Недоборjava script:emoticon(':biggrin:', 'smid_7'). Ладно, буду пробовать. Скорей всего придется свою процедуру писать.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 5 2006, 09:38
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Dimmy @ Dec 4 2006, 23:11) *
Скорей всего придется свою процедуру писать.

По моему опыту, практически всегда при выводе диапазон выводимого числа известен с точностью до одного-двух порядков, поэтому "своя процедура" достаточна проста, если преобразовать в целочисленный тип перед выводом.
А float нужно, чтобы не париться при вычислениях, если нужна точность, а памяти и быстродействия хватает.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
RedFroggy
сообщение Dec 6 2006, 10:38
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 7-11-05
Пользователь №: 10 549



Цитата(Dog Pawlowa @ Dec 5 2006, 09:38) *
Цитата(Dimmy @ Dec 4 2006, 23:11) *

Скорей всего придется свою процедуру писать.

По моему опыту, практически всегда при выводе диапазон выводимого числа известен с точностью до одного-двух порядков, поэтому "своя процедура" достаточна проста, если преобразовать в целочисленный тип перед выводом.
А float нужно, чтобы не париться при вычислениях, если нужна точность, а памяти и быстродействия хватает.


Свою пишите. Зачем Вам универсальные навороты sprintf'a и как следствие, ненужные проблемы с памятью? Своя функция будет маленькая, узкозаточенная и предсказуемая (как реализуете smile.gif). Способ реализации описали выше, если непонятно - спрашивайте.
Go to the top of the page
 
+Quote Post



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

 


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


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