我想调用如下函数,其中第一个参数是名为 config 的结构的成员。在此示例中,该成员称为“Filter”,该成员在结构中定义为 int 并返回 char“changeConfig”以表示对其他代码的更改。
changeConfig = changeInt(config.Filter, 0, 9, LCD_PPM);
这种格式会将我的代码减少到一个非常有限的事务状态,因为该结构有 30 多个成员,所有这些成员都需要以类似的方式单独管理和更改。
以下函数“changeInt”接收值并将它们分配给 intScroll() 所需的值 intMin、intMax 和 intval
unsigned char changeInt(int pointVal, int iMin, int iMax, char mode){
unsigned char configChange = 0;
dp = 0;
intMin = iMin;
intMax = iMax;
intVal = pointVal;
while(((keyPadBits & MENU) != MENU) && (timeout < TIMEOUT)){
intScroll();
if(keyPadBits & ENTER){
pointVal = intVal; //config.Filter = intVal; //config->Filter?
confirmMin();
}
}
return changeConfig;
}
这一切都编译得很好,并且允许我更改函数 intScroll() 中的值,但是如果将“pointVal”替换为“config.Filter”或其他成员,它只会将值保存回结构配置。问题是我希望能够在函数调用中定义成员。
有什么建议么?
我是否需要开始引入指针来解决问题?