优化下面代码uint8 Straight_line_judgment_L(void)//左边线 { short i,sum=0; float kk = 0; if (ImageSide[45][0] != ImageSide[10][0]) { kk = (ImageSide[45][0] - ImageSide[10][0]) / 35.0; sum = 0; for(i=10;i<=45;i++) { if ((ImageSide[10][0] + (float)(i-10) * kk) - ImageSide[i][0] <= 35) { sum++; } else { break; } } } if(sum > 34 && kk > -1.1 && kk < 1.1) { return 1; } else { return 0; } } uint8 Straight_line_judgment_R(void)//右边线 { short i,sum=0; float kk = 0; if (ImageSide[45][1] != ImageSide[10][1]) { kk = (ImageSide[45][1] - ImageSide[10][1]) / 35.0; sum = 0; for(i=10;i<=45;i++) { if ((ImageSide[10][1] + (float)(i-10) * kk) - ImageSide[i][1] <= 35) { sum++; } else { break; } } } if(sum > 34 && kk > -1.1 && kk < 1.1) { return 1; } else { return 0; } }、
时间: 2024-04-10 07:33:24 浏览: 67
代码优化方式
优化后的代码如下:
```C++
uint8 Straight_line_judgment_L(void)//左边线
{
float kk = 0;
if (ImageSide[45][0] != ImageSide[10][0]) {
kk = (ImageSide[45][0] - ImageSide[10][0]) / 35.0;
for(short i = 10; i <= 45; i++) {
if ((ImageSide[10][0] + (i-10) * kk) - ImageSide[i][0] > 35) {
return 0;
}
}
}
return (kk > -1.1 && kk < 1.1);
}
uint8 Straight_line_judgment_R(void)//右边线
{
float kk = 0;
if (ImageSide[45][1] != ImageSide[10][1]) {
kk = (ImageSide[45][1] - ImageSide[10][1]) / 35.0;
for(short i = 10; i <= 45; i++) {
if ((ImageSide[10][1] + (i-10) * kk) - ImageSide[i][1] > 35) {
return 0;
}
}
}
return (kk > -1.1 && kk < 1.1);
}
```
优化说明:
1. 去除了不必要的变量 `i` 和 `sum`,直接使用循环变量 `i`。
2. 在循环中如果出现大于35的情况,直接返回0。
3. 返回语句中直接使用布尔表达式 `(kk > -1.1 && kk < 1.1)`,避免了多余的判断。
阅读全文