if(len != pupdate->len+offset_of(struct UPDATE, data)) return(ret);
struct UPDATE
{
uint8 seq[2];
uint8 ack;
uint8 crc[2];
uint8 len;
uint8 data[1];
};
#define offset_of(obj_type,mb) ((unsigned int)&(((obj_type*)0)->mb))
这行代码的意思是求data前面的长度。