优化这段代码 int line = 9; int page = 0; Lcd_DispClear(); memset(szVal, 0, sizeof(szVal)); if (netid == 0) sprintf(szVal, "%s %d", "网口", netid+2); else sprintf(szVal, "%s %d", "网口", netid); LCD_DisString(0, 0, szVal); LCD_DisString(0, 10, (char *)gcszLcdParam[6]); int numpages; if (COMMS_NET_TOTALSUM%9 == 0) numpages = COMMS_NET_TOTALSUM/9; else numpages = COMMS_NET_TOTALSUM/9+1; sprintf(szVal, "%d/%d", line/9, numpages); LCD_DisString(0, 22, szVal);
时间: 2024-01-08 16:04:44 浏览: 66
可以优化的地方如下:
1.可以将第一行和第二行的字符串拼接起来,减少代码行数。
2.可以将第三行到第六行的代码抽离成一个函数,减少代码重复。
3.可以将第七行到第十一行的代码抽离成一个函数,提高代码可读性。
4.可以将第十二行到第十四行的代码抽离成一个函数,提高代码可读性。
优化后的代码如下:
```C++
int line = 9;
int page = 0;
Lcd_DispClear();
memset(szVal, 0, sizeof(szVal));
char netid_str[10];
if (netid == 0)
sprintf(netid_str, "%d", netid+2);
else
sprintf(netid_str, "%d", netid);
char line_str[10];
sprintf(line_str, "%d", line/9);
LCD_DisString(0, 0, "网口");
LCD_DisString(24, 0, netid_str);
LCD_DisString(0, 10, (char *)gcszLcdParam[6]);
LCD_DisString(0, 22, line_str);
LCD_DisString(3, 22, "/");
LCD_DisString(10, 22, numpages_str(COMMS_NET_TOTALSUM, 9));
void display_net_info(int netid)
{
char netid_str[10];
if (netid == 0)
sprintf(netid_str, "%d", netid+2);
else
sprintf(netid_str, "%d", netid);
LCD_DisString(0, 0, "网口");
LCD_DisString(24, 0, netid_str);
LCD_DisString(0, 10, (char *)gcszLcdParam[6]);
}
void display_page_info(int line, int total_sum, int per_page)
{
char line_str[10];
sprintf(line_str, "%d", line/9);
LCD_DisString(0, 22, line_str);
LCD_DisString(3, 22, "/");
LCD_DisString(10, 22, numpages_str(total_sum, per_page));
}
char* numpages_str(int total_sum, int per_page)
{
int numpages;
static char szVal[10];
if (total_sum%per_page == 0)
numpages = total_sum/per_page;
else
numpages = total_sum/per_page+1;
sprintf(szVal, "%d", numpages);
return szVal;
}
```
阅读全文