对不起我错了,学了这么久C语言还真没注意到不能在函数外部调用函数![]() |
你的sprintf函数在函数外部给谁用的? |
51hei截图20211116093931.png (168.67 KB, 下载次数: 57)
你在函数外面使用sprintf()?先看看你的SPRINTF |
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 看不能强制转换一下。 |
这根本就不是sprintf的问题,而是c语言基本语法的问题。 |
这是我已经验证过的,参考一下 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是浮点整型通用的,用浮点是方便要显示小数点的会自动输出负号和小数点 |