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)问题。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –