我经常使用memcpy来复制C/C++中的结构.我看到有人使用等号在C/C++中直接复制struct.例如:
struct A { char* name; int value; };
struct B { struct A happy[10]; };
struct A a1, a2;
struct B b1, b2;
memcpy(&a1, &a2, sizeof(struct A));
b1 = b2;
Run Code Online (Sandbox Code Playgroud)
memcpy和等号之间的效率差异是什么?
现在已经删除了c ++标记,我们正在谈论C而不是C++.
假设a1和a2是相同struct类型的变量
memcpy(&a1, &a2, sizeof(struct A));
Run Code Online (Sandbox Code Playgroud)
和
a1 = a2;
Run Code Online (Sandbox Code Playgroud)
做同样的事情.
但是,如果分配运营商实际使用memcpy与否,则完全取决于编译器.