簡體   English   中英

如何在C中的typdef結構內為數組分配值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM