2017-03-02 65 views
0

代碼片段:錯誤#29預計C中的表達

#define ATT_UUID_SIZE     16 

#define ATT_BT_UUID_SIZE     2 

typedef unsigned char uint8; 

typedef struct 
{ 
    uint8 len;     //!< Length of UUID (2 or 16) 
    uint8 uuid[ATT_UUID_SIZE]; //!< 16 or 128 bit UUID 
} attAttrType_t; 

typedef struct 
{ 
    uint16 startHandle; 
    uint16 endHandle; 
    attAttrType_t type; 
} attReadByTypeReq_t; 

attReadByTypeReq_t req; 
req.startHandle=svcStartHdl; 
req.endHandle=svcEndHdl; 
req.type.len=ATT_BT_UUID_SIZE; 
req.type.uuid[ATT_BT_UUID_SIZE]={0xAD,0x2B}; 

=>它說錯誤#29時,我給你寫0xAD和0x2B訪問爲的uuid我能怎麼做?錯

回答

0
req.type.uuid[ATT_BT_UUID_SIZE]={0xAD,0x2B}; 

此行不正確。 uuid [xxx]的uuid是一個數組地址,不能通過'='方法賦值。這樣做:

req.type.uuid[0] = 0xAD; 
req.type.uuid[1] = 0x2B; 

或像這樣:

memcpy(req.type.uuid, YOUR_VALUE, ATT_BT_UUID_SIZE); 
+1

它是描述你職位的代碼很好的做法。此外,請使用單詞代替OP或其他社區成員可能不理解的「==>」等符號。 –

+0

雖然這段代碼片段是受歡迎的,並且可能會提供一些幫助,但如果它包含* how *和* why *的解釋](// meta.stackexchange.com/q/114762)問題。請記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –