当前位置: 技术问答>linux和unix
警搞comparison is always true due to limited range of data type,如何去除.
来源: 互联网 发布时间:2016-08-21
本文导语: 编译出现一个警告: main.c:350: warning: comparison is always true due to limited range of data type //转义字符 int CharEscap(unsigned char *buf,int iLen) { unsigned char temp,endtemp; int i,j; for( i = 0 ; i = 0x00) && (buf[i] i;j--) ...
编译出现一个警告:
main.c:350: warning: comparison is always true due to limited range of data type
//转义字符
int CharEscap(unsigned char *buf,int iLen)
{
unsigned char temp,endtemp;
int i,j;
for( i = 0 ; i = 0x00) && (buf[i] i;j--) //空出位置来,来放转义字符
{
temp=buf[j];
buf[j+1]=temp;
}
temp=buf[i]+0x20;
buf[i++]=0x7d;
buf[i]=temp;
buf[iLen]=endtemp;
}
else if(buf[i]==0x7d) //0x7d
{
endtemp=buf[iLen++];
for(j=iLen-1;j>i;j--)
{
temp=buf[j];
buf[j+1]=temp;
}
temp=0x5d;
buf[i++]=0x7d;
buf[i]=temp;
buf[iLen]=endtemp;
}
else if(buf[i]==0x7e) //0x7e
{
endtemp=buf[iLen++];
for(j=iLen-1;j>i;j--)
{
temp=buf[j];
buf[j+1]=temp;
}
temp=0x5e;
buf[i++]=0x7d;
buf[i]=temp;
buf[iLen]=endtemp;
}
}
return(iLen);
}
应该怎么解决这个警告呢..
main.c:350: warning: comparison is always true due to limited range of data type
//转义字符
int CharEscap(unsigned char *buf,int iLen)
{
unsigned char temp,endtemp;
int i,j;
for( i = 0 ; i = 0x00) && (buf[i] i;j--) //空出位置来,来放转义字符
{
temp=buf[j];
buf[j+1]=temp;
}
temp=buf[i]+0x20;
buf[i++]=0x7d;
buf[i]=temp;
buf[iLen]=endtemp;
}
else if(buf[i]==0x7d) //0x7d
{
endtemp=buf[iLen++];
for(j=iLen-1;j>i;j--)
{
temp=buf[j];
buf[j+1]=temp;
}
temp=0x5d;
buf[i++]=0x7d;
buf[i]=temp;
buf[iLen]=endtemp;
}
else if(buf[i]==0x7e) //0x7e
{
endtemp=buf[iLen++];
for(j=iLen-1;j>i;j--)
{
temp=buf[j];
buf[j+1]=temp;
}
temp=0x5e;
buf[i++]=0x7d;
buf[i]=temp;
buf[iLen]=endtemp;
}
}
return(iLen);
}
应该怎么解决这个警告呢..
|
((buf[i] >= 0x00) 永远成立,因为它是无符号的.
可删除
可删除
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。