最近,我正在研究一个在MIPS架构上运行的特殊嵌入式操作系统。我对此知之甚少。当我使用 printf 函数时,看到一些奇怪的东西:
int a = 10;
float b = 3.14;
double c = 3.14;
printf("a is %d\n", a); // I'm sorry I forgot to type the parameters just now
printf("b is %f\n", b); // Error
printf("c is %f\n", c); // Error
输出是:
a is 10
b is 0.000000
a
是对的,但b
似乎是错的,c
甚至无法打印。函数 printf 来自 newlib(一个 C 语言库)。请注意,浮点数/双精度数可以正确计算,正确存储在内存中,但无法正确打印。
我认为操作系统可能有问题。我只是想知道可能是什么原因。有没有人遇到过这个问题?