打印浮点问题

时间:2009-12-16 10:28:28

标签: floating-point printf iar

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

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

但我总是在控制台

中得到以下内容
version number:ERROR
请帮忙 提前致谢 库地

2 个答案:

答案 0 :(得分:1)

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

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

来自文档:

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

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

答案 1 :(得分:0)

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

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

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

'%3.1f'告诉printf使用3个字符,其中一个小数位后。输出应为

version number: 1.4

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

This link只是一个例子,它让我认为我的K& R副本根本就没有任何帮助。对不起。