[英]How do I assign values to an array within a typdef structure in C?
我試圖將值分配給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之后
您不能直接分配給數組。 您使用的語法僅在定義變量時才有效。 即,您可以這樣做:
CImageVersion oImageVersion = { { Digit12, Digit34, Digit56} };
但這不是:
CImageVersion oImageVersion;
oImageVersion.trData = { Digit12, Digit34, Digit56};
如果在定義變量時未分配值,則需要分別分配給每個數組元素:
oImageVersion.trData[0] = Digit12;
oImageVersion.trData[1] = Digit34;
oImageVersion.trData[2] = Digit56;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.