gpt4 book ai didi

c - 作为函数参数的结构成员

转载 作者:太空宇宙 更新时间:2023-11-03 23:31:46 24 4
gpt4 key购买 nike

我想调用如下函数,其中第一个参数是名为 config 的结构的成员。在此示例中,该成员称为“Filter”,它在结构中定义为一个 int 并返回一个字符“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”或其他成员。问题是我希望能够在函数调用中定义成员。

有什么建议吗?

我是否需要开始提出建议来解决问题?

最佳答案

将指针传递给要修改的int:

unsigned char changeInt(int *pointVal, ...

当需要修改值时,需要取消对指针的引用:

*pointVal = ...

调用函数时,传递要修改的变量地址:

changeConfig = changeInt(&config.Filter, ...

关于c - 作为函数参数的结构成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13766658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com