我在使用时,sprintf可以将整形数据存入char型数组中,但是不能将float型数据存入char型数组中,请问这是为什么。
void _ShowData_Change_S(uint16_t x,uint16_t y,uint8_t num,uint16_t fc,uint16_t bc,void *p)
{
char Fiv[5],One[1];
float *f;
uint8_t *u8;
int *it;
if(num <= 2)
u8 = (uint8_t*)p;
else if(num > 4)
f = (float*)p;
switch(num)
{
case 1:
sprintf(One,"%01c",*u8);
TFT_ShowNumPic_S(x,y,One,fc,bc);
break;
case 51:
sprintf(Fiv,"%05.1f",*f);
TFT_ShowNumPic_S(x,y,Fiv,fc,bc);
break;
}
}
这是一个显示函数,如果void *p传入的是整形数据可以显示出来,但是float类型的数据就显示不出来