1、数组越界
unsigned short ipData[100]={0};
……
if(ipNum<=100){
ipData[ipNum]=50;///>错误,最大为99
}
2、非赋值表达式出现赋值操作符
if(a[10]=0x55){///>错误,应该用==而不是赋值
//输出某项
}
3、if else表达式存在交集
if( ipNum>=0 && ipNum<=100 ){
ipData[ipNum]=50;
}
…
if(ipNum<=200){///>存在交集
ipData[ipNum]=150;
}
4、同一个表达式,++和–混合使用
a = a + b[++i + 1];
a = a + b[i++ + 1]
5、上下文关联
a=b&0xFc;
if(a==0xff){///>条件不可达
//输出
}
6、取值区间判断
if(30<a<50&&20<b<39){///>永远为真,从左到右比较
}else{///>条件不可达
}
7、重要参数错误
a= 0.1*value*5/256;///>a的范围为0-255
if(a>0.5){///>条件不可达。a的最大值为0.498
}