小编Pai*_*doo的帖子

在c ++中将struct转换为int

我有一个结构来表示具有位字段的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将它们放在正确的位置.但这首先使得位域结构的使用毫无用处.

c++ can-bus

6
推荐指数
1
解决办法
1504
查看次数

c ++中struct对象的深层复制指针

我有以下类型的结构:

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)

c++ pointers structure deep-copy

2
推荐指数
1
解决办法
3028
查看次数

标签 统计

c++ ×2

can-bus ×1

deep-copy ×1

pointers ×1

structure ×1