在代码中,我在编译时收到此警告。 我试图解决此问题,但我无法解决此问题。
static uint8_t tx_data;
int *recvdata2,*recvdata;
recvdata= str2int(tx_data); //warning assignment from incompatible pointer type
recvdata2=(uint8_t*)&recvdata
str2int是将字符串转换为整数的函数。
int str2int(char *str)
{
int res=0;
int i;
for ( i = 0; str[i] != '\0'; ++i)
res=(res)*10+str[i]-'0';
return res;
}
我对此不满意。请帮助我解决此问题。 任何帮助将不胜感激。
答案 0 :(得分:0)
当前,您正在尝试将int
分配给int *
您会看到recvdata
指向int
的指针。
修改如下。
int *recvdata2, recvdata;
recvdata = str2int(tx_data);
recvdata2 = &recvdata
答案 1 :(得分:0)
int str2int(char *str)
。char*
作为参数,并以int
作为结果类型。uint8_t
而不是char*
,并使用int*
作为返回类型而不是int
。 char*
需要指向已分配的数组。摘要:您不能通过反复试验来编程。首先检查该功能,确保知道它的期望,然后编写调用代码。