为什么float类型可以很好地与Keil配合使用,而不能与Eclipse(gcc)配合使用

为什么float类型可以很好地与Keil配合使用,而不能与Eclipse(gcc)配合使用,c,eclipse,gcc,floating-point,keil,C,Eclipse,Gcc,Floating Point,Keil,正如标题中所说,我面临着相当好奇(也许不是这样)的行为。虽然我的程序在使用Keil编译时运行良好,但在使用gcc编译相同的代码时,浮点变量的行为异常 在我的代码中,我打印了浮点变量:当用Keil编译时,它会给我正确的值(即:float value=0.15,但在gcc中,printf返回空白值,如:float value=) 有人遇到过这个问题吗?这是类型定义的问题吗?编译器选项 编辑:正如p_uuJ_uu所说的:-u_printf_float是必需的。这就解决了问题,谢谢答案很简单。print

正如标题中所说,我面临着相当好奇(也许不是这样)的行为。虽然我的程序在使用Keil编译时运行良好,但在使用gcc编译相同的代码时,浮点变量的行为异常

在我的代码中,我打印了浮点变量:当用Keil编译时,它会给我正确的值(即:
float value=0.15
,但在gcc中,
printf
返回空白值,如:
float value=

有人遇到过这个问题吗?这是类型定义的问题吗?编译器选项


编辑:正如p_uuJ_uu所说的:-u_printf_float是必需的。这就解决了问题,谢谢

答案很简单。printf float支持必须在大多数实现中手动启用,因为它会消耗内存


-lc-lrdimon-u\u printf\u float

没有一些代码,谁知道呢<代码>“”\_(ツ)_/“为什么不向我们展示您的程序?@user253751-因为这次程序无关紧要。这是一个具体实施的问题,您是否知道答案(即,您有使用这些工具链的经验).C.一般性审议不相关here@P__J__当然,程序很重要。我们需要知道您是如何打印数字的。例如,您可能正在使用
char buf[12];sprintf(buf,“float value=%f”,0.15);put(buf)打印数字
这是一种缓冲区溢出。@user253751你知道什么是
keil
吗?如果知道,你知道它是uC project.8051或ARM。erst是显而易见的。正如我写的,如果你不知道,你将无法从程序中获得任何知识。正确!这是答案,非常感谢!@Ben34投票,选择正确的答案-这是正确的你在这里说“谢谢”的方式