要实现结构体求和功能,大概是想这样实现(下面代码),实现不了,求解!
typedef struct{
U8 M_Model;
U8 M_Type;
U8 M_AddNo;
U8 M_Add[4];
U16 S_PowerNo;
U8 Check;
}sUseData;
sUseData UseData;
void sum(void)
{
U8 i;
struct sUseData *p;
UseData.Check = 0;
p = &UseData;
for(i=0;i<sizeof(sUseData)-1;i++){
UseData.Check += *(p+i);
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
是啊,结构体声明的时候,对齐方式设置成1字节对齐
typedef __packed struct
{
U8 M_Model;
U8 M_Type;
U8 M_AddNo;
U8 M_Add[4];
U16 S_PowerNo;
U8 Check;
}sUseData;
sUseData UseData;
void sum(void)
{
U8 i;
U8 *p;
UseData.Check = 0;
p = (U8*)&UseData;
for(i=0;i<sizeof(sUseData);i++){
UseData.Check += *(p+i);
}
}
关键两点改动是:
1. typedef __packed struct
2. U8 *p; p = (U8*)&UseData;
一周热门 更多>