проблема в печати с плавающей точкой - PullRequest
1 голос
/ 16 декабря 2009

привет, я использую компилятор IAR c, я пытаюсь напечатать значение с плавающей точкой, например

printf("version number: %f\n",1.4);

но я всегда получаю как в консоли

version number:ERROR

помогите пожалуйста заранее спасибо Kudi

Ответы [ 2 ]

1 голос
/ 20 июня 2010

Возможно, ошибка связана с вашей конфигурацией dlib. Из-за того, что основное внимание уделяется встроенным целям с ограничениями ресурсов, набор функций / функций библиотеки iar c (dlib) настраивается.

Посмотрите на Проект / Параметры / Общие параметры / Параметры библиотеки.

Из документов:

ВЫБОР ФОРМАТЕРА ПЕЧАТИ Функция printf использует форматтер _Printf. Версия по умолчанию довольно большой, и предоставляет средства, не требующиеся во многих встроенных приложениях. Чтобы уменьшить потребление памяти, три меньшие, альтернативные версии также представлены в стандартная библиотека C / EC ++.

#define _DLIB_PRINTF_SPECIFIER_FLOAT доступен, если printf знает значения с плавающей точкой.

0 голосов
/ 16 декабря 2009

Строка формата для функции printf может указывать представления с плавающей запятой с более явной строкой:

printf("version number: %3.1f\n", 1.4);

Я думаю, что это является причиной сообщения об ошибке.

"% 3.1f" указывает printf использовать 3 символа, с одним после десятичного разряда. Выход должен быть

version number: 1.4

РЕДАКТИРОВАТЬ: Куди, кажется, функция printf () в компиляторе IAR сильно отличается от функции printf () K & R.

Эта ссылка является лишь одним примером, который наводит меня на мысль, что моя копия K & R вообще не поможет. Извините за это.

...