gpt4 book ai didi

c++ - memcpy 是否识别目标的基础大小?

转载 作者:太空宇宙 更新时间:2023-11-03 10:23:53 27 4
gpt4 key购买 nike

#include <iostream>
#include <bitset>
#include <cstring>

using namespace std;

int main()
{
uint8_t a = 1;
uint16_t b = 0;

memcpy(&b, &a, 1);

cout << bitset<16>(b) << std::endl;

return 0;
}

它的输出是 0000000000000001。但是,我希望 memcpy 只是将 a 复制到 b 的第一个字节中,而 b0000000100000000 代替。这里发生了什么?

最佳答案

memcpy 为每个参数获取一个 void *,因此它没有关于底层变量类型的信息。它准确复制指定的字节数。

您看到 0x0001 而不是 0x0100 的原因可能是因为您的系统使用小端字节序,这意味着最低有效字节在前。

关于c++ - memcpy 是否识别目标的基础大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48653672/

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