嗨,我正在使用 IAR c 编译器,我正在尝试打印浮点值,例如
printf("version number: %f\n",1.4);
但我总是在控制台中变得像下面
version number:ERROR
帮助请提前感谢 kudi
嗨,我正在使用 IAR c 编译器,我正在尝试打印浮点值,例如
printf("version number: %f\n",1.4);
但我总是在控制台中变得像下面
version number:ERROR
帮助请提前感谢 kudi
该错误可能是由于您的 dlib 配置造成的。由于关注具有资源限制的嵌入式目标,iar c 库 (dlib) 的行为/功能集是可配置的。
查看项目/选项/常规选项/库选项。
从文档:
选择 PRINTF 格式化程序 printf 函数使用名为 _Printf 的格式化程序。默认版本相当大,并提供许多嵌入式应用程序不需要的功能。为了减少内存消耗,标准 C/EC++ 库中还提供了三个较小的替代版本。
如果 printf 知道浮点数,则 #define _DLIB_PRINTF_SPECIFIER_FLOAT 可用。
函数的格式字符串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 副本将毫无帮助。对于那个很抱歉。