遍历结构体成员变量

2019-07-20 22:11发布

结构体内部的成员比较复杂,有int,char,union,struct等各种类型,还有嵌套结构体,怎么能打印出现在这个结构体中的所有变量?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
zdfwyh
2019-07-21 19:41
本帖最后由 zdfwyh 于 2016-5-16 23:11 编辑

编制两个程序文件main.c和type.c,main.c演示了如何定义结构体和一个结构体长度数组
type.c定义了结构体内容,如果需要增加和修改结构体内容,只要修改type.c就行,抛砖引玉
mian.c
[mw_shl_code=c,true]
#include "stdio.h"


#define DATA(a,b,c) a b;
typedef struct
{
#include "type.c"
}arm_test;
        
#define DATA(a,b,c) sizeof(a),

const char arm_test_size[]={
#include "type.c"
};
        
#define DATA(a,b,c) printf(c,*(a *)p);p+=arm_test_size[i++];
void myPrintf(void *p)
{
        int n,i;
        n=sizeof(arm_test);
        i=0;

        #include "type.c"


}
void main()
{
        arm_test p;
        
        p.a=1;
        p.b='d';
        p.c=0.9;
        myPrintf((void*)&p);
        while(1);
}[/mw_shl_code]

type.c
[mw_shl_code=c,true]
DATA(int  ,a,"%d ")
DATA(char ,b,"%c ")
DATA(float,c,"%f ")
        
#undef DATA
[/mw_shl_code]

一周热门 更多>