我有一个结构来表示具有位字段的29位CAN标识符如下.
struct canId
{
u8 priority :3;
u8 reserved :1;
u8 dataPage :1;
u8 pduFormat :8;
u8 pduSpecific :8;
u8 sourceAddress :8;
} iD;
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我想将此结构复制到整数变量.就像是:
int newId = iD;
Run Code Online (Sandbox Code Playgroud)
但是我不确定这是否正确.有人可以对此发表评论吗?
编辑:我可以在每个字段上使用shift运算符,然后使用按位OR将它们放在正确的位置.但这首先使得位域结构的使用毫无用处.
我有以下类型的结构:
struct SPacket
{
unsigned char payload[260];
unsigned int payloadLength;
};
Run Code Online (Sandbox Code Playgroud)
我有一个指向此结构的指针对象:
SPacket* ptrObj;
Run Code Online (Sandbox Code Playgroud)
如何将ptrObj的深层副本执行到另一个对象:
SPacket obj;
Run Code Online (Sandbox Code Playgroud)