2009-12-16 73 views
1

喜我使用IAR C编译器,我想打印像问题浮点

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

浮点值,但我总是得到像下面的控制台

version number:ERROR 

帮助,请 由于事先 苦谛

回答

0

格式字符串为printf功能可以指定浮点表示无线th更加明确的字符串:

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

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

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

version number: 1.4 

编辑:库地,似乎在IAR编译器的printf()函数是从K个&řprintf()函数非常不同。

This link仅仅是一个例子这使我觉得我ķ&的R副本将是没有帮助。对于那个很抱歉。

+0

感谢您的快速重播,我试过你说的输出如下 version_number:ERROR1f – kudi 2009-12-16 11:04:12

+0

我注意到你说的是IAR C编译器。我指的是Kernighan和Ritchie的'The C Programming Language'。也许在语法上有一些区别。其实,看这本很老的书,目前还不清楚%3.1f是否可以接受。我建议你回到%f并忽略\ n – pavium 2009-12-16 11:32:35

1

该错误可能是由于你的DLIB配置。由于注重与资源限制嵌入式目标的IAR C库(DLIB)的行为/功能集是可配置的。

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

从文档:

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

#定义_DLIB_PRINTF_SPECIFIER_FLOAT可如果知道printf的花车。