gpt4 book ai didi

c++ - 打包结构和不打包没有代码重复

转载 作者:行者123 更新时间:2023-11-30 01:02:08 24 4
gpt4 key购买 nike

我有这个代码:

// size probably 4 bytes
struct NotPacked
{
uint16_t first;
uint8_t second;
};

// size is 3 bytes
struct Packed
{
uint16_t first;
uint8_t second;
}__attribute__((packed));

我想使用相同的结构,有时是打包的,有时不是。您知道如何编写这段代码来避免重复吗?

[编辑]问题应该是:“.. 编写这段代码,尽可能避免代码重复”

[编辑2]我已经尝试使用空类优化进行实验但没有成功

[编辑3]添加了基本示例:

  Packed packet;
receivePacketFromNetwork(&packet); // Fill the structure with data coming from the network
NotPacked notPacked = packedToUnpacked(packet); // convert packed structure to unpacked
processUnpacked(notPacked); // Do a lot of computations

最佳答案

I'd like to use the same structure, sometimes as packed, sometimes not. Do you know any way to write this

没有。

您究竟如何期望用相同的代码定义两个完全不同的内存布局?

关于c++ - 打包结构和不打包没有代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56738169/

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