c - 结构赋值还是 memcpy?

标签 c struct variable-assignment memcpy

<分区>

如果我想在另一个结构中复制一个结构(在 C 中),优点和缺点是什么:

struct1 = struct2;

对比

memcpy(&struct1, &struct2, sizeof(mystruct_t));

它们是等价的吗?在性能或内存使用方面是否存在差异?

最佳答案

struct1=struct2; 符号不仅更简洁,而且更短,为编译器留下更多优化机会。 =的语义是赋值,而memcpy只是复制内存。这在可读性方面也存在巨大差异,尽管 memcpy 在这种情况下的作用相同。

使用=

关于c - 结构赋值还是 memcpy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5383318/

相关文章:

java - boolean 值 and= 赋值运算符含义

c++ - 位域的分配是否特定于不同的 Endianness 实现

c - 以下程序如何在 C89 模式下编译时输出 `C89` 而在 C99 模式下编译时输出 `C99`?

c - 请解释位域 1 的输出

c++ - 我如何修改此函数,以便如果函数的参数是特定结构,它会返回具有更大整数的结构?

Python 将条目列表分配给变量

Java - 为什么将 F 附加到 `float a=0.32F` 告诉它在 a 中存储 32 位 float ,但执行 `float a = 0.32` 却告诉它你想存储 64 位 double ?

c - 在函数中使用 malloc 时出现奇怪的错误

c++ - 如何生成循环矩阵?

c - 有什么理由不对结构进行 typedef 吗?