标题: keil的sprintf咋用啊,我想把数字转成字符串,查了半天资料,改来改去的还是报错 [打印本页]

作者: kelala    时间: 2021-11-15 17:30
标题: keil的sprintf咋用啊,我想把数字转成字符串,查了半天资料,改来改去的还是报错
请大神解答一下,迈过这个坎就有希望了。

1.png (84.77 KB, 下载次数: 42)

1.png

作者: Y_G_G    时间: 2021-11-15 20:36
这是我已经验证过的,参考一下
void Send_TextAndData(char *txt,float Data_Send)        //发送文本+数据
{
        char   k[10];                                                         //这里不能加code限定符,否则计算不正确,数组长度随意,不出错就可以
        char a;
        sprintf(k,"%.1f",Data_Send);        //把浮点数据分割成字符串,并存放在k数组中,"%.1f"的2f表示小数点后再显示1位数,不显示小数就是0f
        for(a=0;(k[a]!='\0');a++)
                {
                        Send_Out_COM(k[a]);                                //发送
                }
}

Data_Send是浮点整型通用的,用浮点是方便要显示小数点的会自动输出负号和小数点

作者: Hephaestus    时间: 2021-11-15 21:27
这根本就不是sprintf的问题,而是c语言基本语法的问题。
作者: zyluglugl    时间: 2021-11-16 07:44
warning:  #167-D:argument of type "uint8_t *" is incompatible with parameter of ty
pe "const char *restrict"
解释: uint8_t * 类型的参数与 const char * restrict 类型的参数不兼容。 参数传递时, 不同
类型的警告。
影响:可能提高代码的 bug 率。
改正:首先避免这样做,其次如果避不开要详细检查传入的参数。
你前面是int 后面是char 看不能强制转换一下。
作者: 黄youhui    时间: 2021-11-16 09:38
你在函数外面使用sprintf()?先看看你的SPRINTF
作者: 黄youhui    时间: 2021-11-16 09:40
你的sprintf函数在函数外部给谁用的?

51hei截图20211116093931.png (168.67 KB, 下载次数: 57)

51hei截图20211116093931.png

作者: kelala    时间: 2021-11-22 21:29
对不起我错了,学了这么久C语言还真没注意到不能在函数外部调用函数




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1