直接赋值(即 =
)与将某些内容投射到char*
然后使用for
循环逐字节复制它是否相同?*
我想知道一种方法是否比另一种方法有优势。
struct A
{
int a;
int b;
} Test;
void* Buffer = malloc(1024);
// Casting and byte copying
for (int i=0; i != 8; i++)
{
((char*)Buffer)[i] = ((char*)Test)[i];
}
// Assignment
((A*)Buffer)[0] = Test;
* 所有类型都可以按位复制。
编辑:根据答案,memcopy 是否与 '=' 相同