gpt4 book ai didi

c++ - 如何将几个变量复制到其他变量?

转载 作者:行者123 更新时间:2023-12-02 06:22:06 25 4
gpt4 key购买 nike

例如,

struct Foo
{
Foo(uint8_t b0, uint8_t b1, uint16_t b23)
{
// some code here
}
uint32_t m_n;
};

我可以写这样的东西:

auto dest = reinterpret_cast<uint8_t*>(&m_n);
memcpy(dest, &b0, sizeof(b0));
memcpy(dest + sizeof(b0), &b1, sizeof(b1));
memcpy(dest + sizeof(b0) + sizeof(b1), &b23, sizeof(b23));

但是很丑。当有 15 个这样的变量时该怎么办(不要问为什么)

最佳答案

我怀疑你需要这种功能:

template<typename T>
std::enable_if_t<std::is_integral_v<T>, std::array<uint8_t, sizeof(T)>>
littleEndianBytes(T value)
{
static_assert(sizeof(uint8_t) == 1);
using result_type = std::array<uint8_t, sizeof(T)>;
result_type result;
for(auto& x : result) {
x = value & 0xFF;
value >>= 8;
}

return result;
}

https://wandbox.org/permlink/ooGuIzZaw8tdffaT

关于c++ - 如何将几个变量复制到其他变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58627277/

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