如何在C中为typdef结构中的数组赋值?
我试图将值分配给typedef结构中的数组,但不断收到语法错误如何在C中为typdef结构中的数组赋值?,c,typedef,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]; } CImageVersio
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之后,你不能直接分配给数组。您使用的语法仅在定义变量时有效。也就是说,您可以这样做:
CImageVersion oImageVersion = { { Digit12, Digit34, Digit56} };
但不是这个:
CImageVersion oImageVersion;
oImageVersion.trData = { Digit12, Digit34, Digit56};
如果在定义变量时未赋值,则需要分别为每个数组元素赋值:
oImageVersion.trData[0] = Digit12;
oImageVersion.trData[1] = Digit34;
oImageVersion.trData[2] = Digit56;
您不能分配给数组。仅在定义时初始化它或复制到它。请尝试
CImageVersion oImageVersion;//声明一个实例oImageVersion.trData={Digit12,Digit34,Digit56}代码>-->CImageVersion-oImageVersion={{{Digit12,Digit34,Digit56}
另外,->
用于指向结构的指针。实际结构使用
而不是分配数组,分配结构:oImageVersion=(CImageVersion){{{Digit12,Digit34,Digit56}代码>