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 回答