2009-12-16 69 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的花車。