请问C语言两个结构体如何将快速的赋值过去

2019-07-14 13:10发布



请问,我有结构体 两个结构体,如何将快速的赋值过去。

typedef struct
{
        unsigned char    A1[150];        
        unsigned char    A2[100];        
        unsigned long int   A3[200];
        unsigned short int   A4[100];
        unsigned long int   A5[300];
}ST_ONE;



typedef struct
{
        unsigned char    A1[150];        
        unsigned char    A2[100];        
        unsigned long int   A3[200];
        unsigned long int   A3_0[100];    //  增加一个成员A3_0
        unsigned short int   A4[100];
        unsigned long int   A5[300];
}ST_TWO;


ST_ONE    stOne;
ST_TWO   stTwo;
请问,有什么办法,使得stOne,和stTwo 两个结构体,相同的成员名赋值为一样的,而结构体stTwo多出来的 一个成员A3_0,我可以再另行赋值。
是否可以用共同体?这样使得stOne结构体 在一赋值的时候, stTwo结构体内相同成员名的成员就已经赋值了?如果用共同体的话,要如何实现?;还是说有其他好的方法。麻烦各位大神指点指点小弟。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
jiecai5388
2019-07-15 11:16
示例:
union
{
typedef struct
{
        unsigned char    A1[150];        
        unsigned char    A2[100];        
        unsigned long int   A3[200];
        unsigned short int   A4[100];
        unsigned long int   A5[300];
}ST_ONE;
typedef struct
{
        unsigned char    A1[150];        
        unsigned char    A2[100];        
        unsigned long int   A3[200];
        unsigned long int   A3_0[100];    //  增加一个成员A3_0
        unsigned short int   A4[100];
        unsigned long int   A5[300];
}ST_TWO;
}
但应该把TWO的那个多出来的放在底部,这样你对TWO进行初始化后,ONE就跟着一样了;记住他们在内存里是共享一个存贮单元的,你修改了其中任何一个,另外一个也跟着一样修改了。

一周热门 更多>