Обновление членов структуры в цикле for - PullRequest
1 голос
/ 01 мая 2020

Есть ли способ обновить членов структуры в для l oop, я хочу избежать необходимости обновлять элементы по одному. Например:

Вместо этого:

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 Ответ

1 голос
/ 01 мая 2020

Да, это возможно.

Но вам нужен массив объектов внутри структуры 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
...