请问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条回答
苏州名之卓
1楼-- · 2019-07-16 00:40
用联合体union, 不过长度要设为等长,位置要相对应起来,这样给一个变量赋了值,另一个也得到了相同的值
jiecai5388
2楼-- · 2019-07-16 02:44
就这个case来说,不一定非要等长;基本原则来说就是按照顺序,变量类型要一致
huaxu2222
3楼-- · 2019-07-16 08:24
先一字节对齐,把新增的放在最下边,memcpy
罕井雅直
4楼-- · 2019-07-16 09:51
问题就是不能把多出的放最下面;多出的是中间插入的。
罕井雅直
5楼-- · 2019-07-16 11:34
 精彩回答 2  元偷偷看……
huaxu2222
6楼-- · 2019-07-16 12:47
union 其实就是占用同一块内存,在共用体里边定义一个与结构体等长的char数组,数组里边每个字节对应结构体从上到下的字节。按照结构体里边每个元素的字节数从stOne赋值值stTwo。

一周热门 更多>