嗨我正在使用IAR c编译器,我正在尝试打印浮点值,如
printf("version number: %f\n",1.4);
但我总是在控制台
中得到以下内容version number:ERROR
请帮忙
提前致谢
库地
答案 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副本根本就没有任何帮助。对不起。