gpt4 book ai didi

c++ - 在字节缓冲区中复制一个结构

转载 作者:太空宇宙 更新时间:2023-11-04 15:14:23 26 4
gpt4 key购买 nike

我有以下结构:

struct sample {
uint8_t four;
bool b;
uint8_t two;
};

为了发送一个 udp 数据包,我需要将这些值打包成一个字节:

| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+---+---+---+---+---+---+---+---+
| four | 0 | b | two |
+---------------+---+---+-------+

在此字节中复制结构值的最佳方法是什么?我在执行此操作之前检查了前提条件,因此在将 uint8_t 值复制到更小的空间时不会丢失任何数据。

最佳答案

我只想使用一个函数:

uint8_t pack( const sample &s )
{
return ( s.four & 0xF ) | ( s.b << 5 ) | ( ( s.two & 3 ) << 6 );
}

如您所说,数据范围已检查,您可以将其简化为:

    return s.four | ( s.b << 5 ) | ( s.two << 6 );

关于c++ - 在字节缓冲区中复制一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38645144/

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