Memory 移动内存内容

Memory 移动内存内容,memory,copy,byte,shift,Memory,Copy,Byte,Shift,我有一个C语言的结构。我需要将该结构的内容移位n个字节。现在,这只是该结构的调试输出: struct ztc6_ddl_add_subnet_def{ *** <<truncated>> *** zgate_ip = 0, zgate = 0, znetmask_ip = -1, znetmask = -256, zif_mtu_ip = 0, zif_mtu = -1, zfailover_ip = 8224, zfailover_type = 8224, *** &l

我有一个C语言的结构。我需要将该结构的内容移位n个字节。现在,这只是该结构的调试输出:

struct ztc6_ddl_add_subnet_def{
***
<<truncated>>
***
zgate_ip = 0,
zgate = 0,
znetmask_ip = -1,
znetmask = -256,
zif_mtu_ip = 0,
zif_mtu = -1,
zfailover_ip = 8224,
zfailover_type = 8224,
***
<<truncated>>
***
}
struct ztc6\u ddl\u add\u subnet\u def{
***
***
zgate_ip=0,
zgate=0,
znetmask_ip=-1,
znetmask=-256,
zif_mtu_ip=0,
zif_mtu=-1,
zfailover_ip=8224,
zfailover_type=8224,
***
***
}
我想将这个结构的内容从位置“znetmask_ip”开始,向前移动2个变量。。将-1分配给“zif_mtu_ip”等,结果输出为:

struct ztc6_ddl_add_subnet_def{
***
<<truncated>>
***
zgate_ip = 0,
zgate = 0,
znetmask_ip = x,
znetmask = x,
zif_mtu_ip = -1,
zif_mtu = -256,
zfailover_ip = 0,
zfailover_type = -1,
***
<<truncated>>
***
}
struct ztc6\u ddl\u add\u subnet\u def{
***
***
zgate_ip=0,
zgate=0,
znetmask_ip=x,
znetmask=x,
zif_mtu_ip=-1,
zif_mtu=-256,
zfailover_ip=0,
zfailover_type=-1,
***
***
}
稍后我会复制一些东西来代替“x”。 让它成为影响性能的密集型操作,但是否有一个简单的表达式可以完成这项工作?
PS:考虑每个元素的大小为1字节。

MeMeTune(和ZTC.ZIFI.Mtuuip IP,和ZTC.ZNETMASKIP,SIZEOF(ZTC)-((char *)和ZTC.ZIFFMtuuip)-((char *)和ZTC));应该这样做,假设ztc是您的结构的一个实例。我可能在这个表达式中有额外的类型转换和括号。谢谢@garlon4!!这很有魅力。我完全忽略了这个功能。