您的位置:程序门 -> c/c++ -> c++ 语言



±±±±±±±±±±±±±±±± 结构体遍历的问题 ±±±±±±±±±±±±±±±±


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


±±±±±±±±±±±±±±±± 结构体遍历的问题 ±±±±±±±±±±±±±±±±
发表于:2008-01-22 13:58:13 楼主

结构体定义:
typedef   tag_pack
{
        byte         bystartcode[4];
        byte         bylength[2];
        byte         byscr[3];
        byte         bystufflen;
}us_pack,*pus_pack,**ppus_pack;
//   1字节对齐

pus_pack   pstdata   =   new   tag_pack;
memcpy(pstdata,lpbuffer,sizeof(us_pack));       //   获取数据

遍历结构体内的每一个成员,进行处理后,显示到listctrl的控件中;
有没有更简洁通用的方法进行遍历?
 

发表于:2008-01-22 14:16:011楼 得分:0
你现在怎么遍历的?
发表于:2008-01-22 15:00:142楼 得分:0
switch(struct_nums)
{
        case   0:
        {
                  //do   some   thing
                  break;
        }
        case   1:
        {
                //do   some   thing
                break;
        }
        。。。。。。
}

想过把分支的操作提取成函数,但是每个成员需要进行些解析,所以提成函数好像无法适当的传递其长度和buffer
发表于:2008-01-22 15:02:463楼 得分:0
struct_nums是什么含义啊,还是看不懂你的意思啊。0的时候,到底要对哪个数据作操作啊?
发表于:2008-01-22 15:17:304楼 得分:0
struct_nums就是成员个数,数字就代表成员的索引,0对应bystartcode,1对应bylength,....
贴东西不方便,所以没说清楚,不好意思啦。
发表于:2008-01-22 15:29:205楼 得分:0
你的方法已经够简洁通用了。
发表于:2008-01-22 15:56:526楼 得分:0
谢谢你的回复;
结构体成员较多的时候,感觉代码太冗余,而且还有其他结构体,对应每个结构体都这样写感觉有点不太好;

发表于:2008-01-22 15:58:207楼 得分:0
写一个工具来自动产生你要的代码


快速检索

最新资讯
热门点击