什么是memcpy和C中的等号之间的效率差异?

lin*_*bin 2 c memcpy

我经常使用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和等号之间的效率差异是什么?

Jab*_*cky 5

现在已经删除了c ++标记,我们正在谈论C而不是C++.

假设a1a2是相同struct类型的变量

memcpy(&a1, &a2, sizeof(struct A));
Run Code Online (Sandbox Code Playgroud)

a1 = a2;
Run Code Online (Sandbox Code Playgroud)

做同样的事情.

但是,如果分配运营商实际使用memcpy与否,则完全取决于编译器.