C 结构体怎么求和?

2020-01-23 14:40发布

要实现结构体求和功能,大概是想这样实现(下面代码),实现不了,求解!
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);       
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
qlb1234
1楼-- · 2020-01-24 11:18
 精彩回答 2  元偷偷看……
cdh
2楼-- · 2020-01-24 11:58
本帖最后由 cdh 于 2014-5-27 10:51 编辑

p+i?这样能引用结构体的成员吗?貌似不吧。
zhugean
3楼-- · 2020-01-24 16:27
UseData.Check +=  (p++) -> Check;   
Lee2012
4楼-- · 2020-01-24 17:38
我认为,结构体是不同数据类型的一个集合,对结构体成员的求和很不方便不如用数组。一定想求和的话可以用结构数组指针,而不是结构变量指针!
liyang121316
5楼-- · 2020-01-24 20:08
本帖最后由 liyang121316 于 2014-5-27 11:40 编辑

你是想计算这个结构体的所有元素的累加和吧,这样试下
void sum(void)
{
U8 i;
u8  *p;        
        UseData.Check = 0;
        p = (u8*)&UseData;
        for(i=0;i<sizeof(sUseData)-1;i++){
                UseData.Check += *(p+i);        
        }
}
albert_w
6楼-- · 2020-01-25 00:05
 精彩回答 2  元偷偷看……

一周热门 更多>