如何在C中的typdef结构中为数组赋值?

时间:2017-10-23 17:16:51

标签: c typedef

我正在尝试为typedef结构中的数组赋值,并且不断地出现语法错误。

Error expected '=', ',', ';', 'asm' or '__attribute__' before '.' token

这是我的代码:

myfile.h

#define  Digit12  0x00u
#define  Digit34  0x01u
#define  Digit56  0x01u

typedef struct
{
   uint8_t trData[3]; 
} CImageVersion;

myfile.c

CImageVersion oImageVersion; // declare an instance

oImageVersion.trData = { Digit12, Digit34, Digit56};

稍后在代码中

otherfile.c

extern CImageVersion oImageVersion;

arry是指针,但如果我将作业更改为

oImageVersion->trData = { Digit12, Digit34, Digit56};

我得到了同样的错误。关于我做错了什么我很困惑当我分配值时,错误指向oImageVersion之后

1 个答案:

答案 0 :(得分:3)

您无法直接分配给数组。您使用的语法仅在变量定义时有效。即你可以这样做:

CImageVersion oImageVersion = { { Digit12, Digit34, Digit56} };

但不是这样:

CImageVersion oImageVersion;
oImageVersion.trData = { Digit12, Digit34, Digit56};

如果在定义变量时没有分配值,则需要分别为每个数组元素分配:

oImageVersion.trData[0] = Digit12;
oImageVersion.trData[1] = Digit34;
oImageVersion.trData[2] = Digit56;