2

嗨,我正在使用 IAR c 编译器,我正在尝试打印浮点值,例如

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

但我总是在控制台中变得像下面

version number:ERROR

帮助请提前感谢 kudi

4

2 回答 2

2

该错误可能是由于您的 dlib 配置造成的。由于关注具有资源限制的嵌入式目标,iar c 库 (dlib) 的行为/功能集是可配置的。

查看项目/选项/常规选项/库选项。

从文档:

选择 PRINTF 格式化程序 printf 函数使用名为 _Printf 的格式化程序。默认版本相当大,并提供许多嵌入式应用程序不需要的功能。为了减少内存消耗,标准 C/EC++ 库中还提供了三个较小的替代版本。

如果 printf 知道浮点数,则 #define _DLIB_PRINTF_SPECIFIER_FLOAT 可用。

于 2010-06-20T11:08:23.217 回答
-1

函数的格式字符串printf可以用更明确的字符串指定浮点表示:

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

我认为这是错误消息的原因。

'%3.1f' 告诉 printf 使用 3 个字符,小数点后有 1 个字符。输出应该是

version number: 1.4

编辑: Kudi,IAR 编译器中的 printf() 函数似乎与 K&R printf() 函数完全不同。

这个链接只是一个例子,它让我认为我的 K&R 副本将毫无帮助。对于那个很抱歉。

于 2009-12-16T10:46:12.223 回答