0

メインプログラムで値を割り当てようとしています。

typedef struct PointStructure 
{   unsigned char x;    
    unsigned char y; 
    unsigned char offset; 
    unsigned char page;
}point;

volatile far point p;
volatile far point AryP[5];

メインプログラムで構造体 p に値を代入できる唯一の方法は

p.x=10;
p.y=20;
p.offset=0;
p.page=1;

この方法では、配列に値を割り当てるのに多くのスペースと時間がかかります。これを行うより良い方法はありますか?

次の方法は私にとってはうまくいきませんでした..

p = {10, 20, 0, 1};

p = {.x = 10, .y=20, .offset=0, .page=1};
4

1 に答える 1

0
p = {10, 20, 0, 1};

p = {.x = 10, .y=20, .offset=0, .page=1};

初期化として使用しない限り、上記の方法は正しくありません。

volatile far point p = {.x = 10, .y=20, .offset=0, .page=1};

構造体に値を代入するには、次の方法しかありません。

p.x=10;
p.y=20;
p.offset=0;
p.page=1;

関数を作成しない限り、同時に複数のメンバーを割り当てる方法はありません。

void assignValue(point *p, x, y, offset, page)
{
      p->x = x;
      p->y = y;
      p->offset = offset;
      p->page = page;
}

したがって、次のように値を割り当てることができます。

assignValue(&p, 10, 20, 0, 1);
于 2014-11-30T14:40:11.797 に答える