gpt4 book ai didi

在位域结构上转换字节序(再次)

转载 作者:行者123 更新时间:2023-12-01 11:50:05 27 4
gpt4 key购买 nike

之前有人问过这个问题,但是当移动到具有相反字节序的平台(在这种情况下从大到小)时,我仍然对如何处理位域结构感到有些困惑。所以如果我有这个:

typedef struct
{
unsigned short a :5;
unsigned short b :1;
unsigned short c :5;
unsigned short d :5;
} protocol_type;

typedef union
{
protocol_type cmd;
unsigned short word;
}protocol_cmd_type;

处理这个问题的正确方法是这样吗?
typedef struct
{
unsigned short d :5;
unsigned short c :5;
unsigned short b :1;
unsigned short a :5;
} protocol_type;

typedef union
{
protocol_type cmd;
unsigned short word;
}protocol_cmd_type;

或者是其他东西?

这就是我所做的,但它没有给出我期望的结果。但是,这段代码还有其他问题,所以我不确定上面是否真的有错。希望在这里获得洞察力,以便我可以将这部分从列表中删除。

事实上,我仍然需要让代码在两个平台上都能工作,所以我会围绕#defines 进行包装,但我不想在这里弄乱东西。

最佳答案

我会保留你原来的东西,但颠倒 word 的字节顺序在引用之前(如果需要)。

关于在位域结构上转换字节序(再次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com