我想知道是否可以按位而不是字节进行memcpy?
我正在为带有VLAN标记的以太网帧编写C代码,其中我需要填写VLAN标头属性(PCP-3bits,DEI-1bit,VID-12bits)的不同值.
如何对这些位执行memcpy,或者以位为单位向这些属性填充值的任何其他可能性.
提前致谢 !
如果需要填充字段,可以将 C位字段与 a 一起使用struct,如下所示:
struct box_props {
unsigned first : 1;
unsigned second : 3;
unsigned : 4;
};
Run Code Online (Sandbox Code Playgroud)
例如,其中1表示该字段的长度为 1 位。最后一个(未命名)字段表示:4 位填充。
对其进行定义struct并读取字段,就好像它们在哪里一样。写作也一样。memcpyunsigned
注意:始终填充到整数字节,否则memcpy可能会产生不良影响。