【发布时间】:2023-03-15 12:22:01
【问题描述】:
变量freq声明如下:
void exciteFreqN(float freq, unsigned short N)
然后我使用以下指令:
sprintf(debugstr, "Cntr ticks:%d freq:%1.1f\r\n", ctphp, freq);
freq 的格式说明符 "%1.1f" 显然是 float(我认为)。
但是,编译器警告:
acquisitionXBEE.c: In function 'exciteFreqN':
***acquisitionXBEE.c:8519:5: warning: format '%1.1f' expects type 'double', but argument 4 has type 'float'
为什么"%1.1f" 需要double? "f" 不应该代表浮动吗?
我怎样才能摆脱这个警告?
【问题讨论】:
-
是您的编译器或 IDE 发出此警告吗?什么编译器/IDE 版本?
-
它应该被隐式转换为双精度。但是
printf"%f" 期望double。 -
@Guille 它看起来像一个编译器错误。
-
@dbush 这些看起来像编译器消息,而不是 IDE。
-
我们需要以下信息:您的平台、IDE、编译器和版本。