在for循环中更新结构成员

时间:2020-05-01 12:07:42

标签: c gcc struct

有没有一种方法可以在for循环中更新结构成员,所以我想避免必须一个接一个地更新成员。例如:

代替这样做:

void Update(int vaule,struct Coolstruct *Ice)
{
    int vaule;
    Ice->member1=vaule;
    Ice->member2=vaule;
    Ice->member3=vaule;
    Ice->member4=vaule;
}

我想知道是否可能与此(伪代码)类似:

void Update(int vaule,struct Coolstruct *Ice)
{
    int vaule;

    for(int i=0;i++;i<4)
    {
        Ice->i =vaule
    }
}

1 个答案:

答案 0 :(得分:1)

是的,有可能。

但是您需要在结构Coolstruct内放置一个对象数组,而不是定义多个单个对象。

这里是一个例子:

#include <stdio.h>

struct Coolstruct {
   int b[4];
};

void Update(int vaule, struct Coolstruct *Ice)
{
    for(int i=0;i<4;i++)
    {
        Ice->b[i] = vaule;
    }

    return;
}

int main(void) {

   struct Coolstruct x;

   int y = 25;

   Update(y, &x);   

   for(int i = 0; i < 4; i++)
   {
       printf("x.b[%d] = %d\n", i, x.b[i]);
   }

   return 0;
}

输出:

x.b[0] = 25
x.b[1] = 25
x.b[2] = 25
x.b[3] = 25