snprintf无法正常工作

时间:2015-04-24 12:09:31

标签: c gcc printf stm32 rtos

我在STM32F437上编程。我正在使用SafeRTOS。编译器是GCC。

在一项任务中,我使用snprintf()来准备带有值的字符串。

问题是snprintf()无法处理浮点数。当它到达格式化字符串中的任何'\0'%f时,它只会结束生成的字符串(%g}。

但是,这很奇怪。如果我在启动RTOS之前在snprintf()中向snprintf()添加了一个虚拟调用,则任务中的main()没有问题。

虚拟电话:

char dummy[20];
snprintf(dummy, sizeof(dummy), "%g", 3.14159);

我找到了类似的解决方案here

但没有回答为什么会有效。

任何想法发生了什么?

1 个答案:

答案 0 :(得分:0)

某些小型实现中的printf库不包含浮点支持。也许虚拟调用以某种方式导致使用更完整(和更大)的库?