void displayString(int i, int isDraw, float val, char** stringArray, int x, int y) { (isDraw ? LCD_DisString_Not(x, y, (char *)stringArray[(int)val]) : LCD_DisString(x, y, (char *)stringArray[(int)val])); }这个函数里stringArray要接收const char gcszOnOff[][48] = {// 投入退出 { "退出" }, { "投入" } }; const char gcszLcdSynctmMode[][32] = {//LCD对时方式 {"主站"}, {"北斗GPS"} };,在不修改gcszOnOff和gcszLcdSynctmMode的情况下该怎么修改
时间: 2024-03-02 18:47:51 浏览: 54
如果你不想修改`gcszOnOff`和`gcszLcdSynctmMode`的定义,可以将`displayString`函数修改为这样:
```c++
void displayString(int i, int isDraw, float val, char* stringArray[], int x, int y) {
if(i == 0){
if(isDraw){
LCD_DisString_Not(x, y, stringArray[(int)val]);
}else{
LCD_DisString(x, y, stringArray[(int)val]);
}
}else if(i == 1){
if(isDraw){
LCD_DisString_Not(x, y, stringArray[(int)val]);
}else{
LCD_DisString(x, y, stringArray[(int)val]);
}
}else{
// 处理未知情况
}
}
```
然后在调用该函数时,你需要将`gcszOnOff`和`gcszLcdSynctmMode`转换为指向指针的指针,例如:
```c++
char* gcszOnOff[] = {"退出", "投入"};
char* gcszLcdSynctmMode[] = {"主站", "北斗GPS"};
displayString(0, isDraw, val, (char**)gcszOnOff, x, y);
displayString(1, isDraw, val, (char**)gcszLcdSynctmMode, x, y);
```
注意,这里需要将`gcszOnOff`和`gcszLcdSynctmMode`强制转换为`(char**)`类型,以便与`stringArray`参数类型匹配。
阅读全文