gpt4 book ai didi

c - 函数中结构数组的处理成员

转载 作者:行者123 更新时间:2023-12-04 12:14:57 26 4
gpt4 key购买 nike

假设我有

struct my_type_t {
int x;
int y;
int z;
};

struct my_array_t {
struct my_type_t test;
int otherstuff;
};

int main(void) {
struct my_array_t arrayofstructs[200];
somefunction(arrayofstructs);

return 0;
}

void somefunction(struct my_array_t *arrayofstructs, somevariable) {
for (int i; i < 200; i++) {
//Do stuff to
arrayofstructs->test[i].somevariable;
}
}

我如何传递一些变量来告诉函数处理结构数组的成员(x、y 或 z)?

谢谢!

最佳答案

事实一:您应该通过 arrayofstructs 而不是 &arraystructs

处理你的问题的方法是这样的:

void someFn(data_type *var , int somevar) {
...
...
...
switch(somevar) {

case <some_value>:
some_task;
break;

...
...
...
} //End switch

}

即,您传递与每个成员相关的标识符,并根据输入的标识符使用选择性结构来执行某些任务。

举个简单的例子,somevar可以是整数,你必须知道整数中的值对应的是什么。

编辑

或者您可以执行以下操作

struct mystr{
int mem[3];
}

void someFn(struct mystr a, int somevar){

//now access those with a[i].mem[somevar]
}

这有助于清除冗余 :)

关于c - 函数中结构数组的处理成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16021999/

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