gpt4 book ai didi

c - C中指针的变量赋值

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

我有一个缓冲区,其中包含结构的原始信息。我想创建一个接受缓冲区并返回所述类型的结构的函数。

my_struct func(uin8t_t* buf){
uin8t_t field1 = *buf;
uin8t_t[3] = *(buf + 1);
...
return
}

假设 field1 和 field2 是结构中的字段,field1 的值是 buf 的第一位,field2 的值是 buf 的第 2、3、4 字节吗?

概括问题:变量赋值是否只是从变量类型指定的值中获取预期的位数?

谢谢

最佳答案

执行作业时,可能会发生两件事:

  1. 您的变量具有相同的类型,其中 sizeof(type) 个字节从一个内存位置复制到另一个内存位置(这是您的情况,大小为 1)。

  2. 参与赋值的变量没有相同的数据类型,这种情况下会发生一些隐式转换。根据一般经验,您可以认为复制的字节数是所涉及的 2 个变量大小中的最小值。

请注意,如果您尝试对结构变量进行赋值/从结构变量进行赋值,则必须考虑其成员之间的最终填充。

关于c - C中指针的变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33249243/

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