gpt4 book ai didi

c - 用更少的代码添加(或做任何其他数学)两个相同结构的每个成员

转载 作者:太空狗 更新时间:2023-10-29 15:52:51 24 4
gpt4 key购买 nike

所以,基本上,我想添加第一个 struct 的每个成员,以及第二个 struct 的每个成员,struct 是同一类型。像这样:

struct Foo
{
int bar1;
int bar2;
int bar3;
int bar4;
int bar5;
}

Foo AddFoos(Foo foo1, Foo foo2)
{
Foo foo3;
foo3.bar1 = foo1.bar1 + foo2.bar1;
foo3.bar2 = foo1.bar2 + foo2.bar2;
foo3.bar3 = foo1.bar3 + foo2.bar3;
foo3.bar4 = foo1.bar4 + foo2.bar4;
foo3.bar5 = foo1.bar5 + foo2.bar5;
return foo3;
}

但是,当structs 不断变大时,这种方式就很奇怪了。有没有办法用更少的代码行来做到这一点?最好不要高级指针魔法?

最佳答案

改用数组和 for 循环来添加数字:

struct Foo
{
int bars[100];
};

for (i=0;i<100;i++)
{
foo3.bars[i]=foo1.bars[i]+foo2.bars[i];
}

如果数组大小在编译时未知,您可以malloc 并将结构更改为此,然后为所有三个 Foo 变量进行 malloc。

struct Foo
{
int *bars;
};

关于c - 用更少的代码添加(或做任何其他数学)两个相同结构的每个成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13518329/

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