Предпочтение между memcpy и разыменованием

При копировании известной структуры в память, вы бы предпочли использовать memcpy или разыменование? Зачем? В частности, в следующем коде:

#include <stdio.h>
#include <string.h>

typedef struct {
    int foo;
    int bar;
} compound;

void copy_using_memcpy(compound *pto, compound *pfrom)
{
    memcpy(pto, pfrom, sizeof(compound));
}
void copy_using_deref(compound *pto, compound *pfrom)
{
    *pto = *pfrom;
}

int main(int argc, const char *argv[])
{
    compound a = { 1, 2 };
    compound b = { 0 };
    compound *pa = &a;
    compound *pb = &b;

    // method 1
    copy_using_memcpy(pb, pa);
    // method 2
    copy_using_deref(pb, pa);
    printf("%d %d\n", b.foo, b.bar);

    return 0;
}

Вы бы предпочли метод 1 или метод 2? Я посмотрел на сборку, сгенерированную gcc, и кажется, что метод 2 использует меньше инструкций, чем метод 1. Означает ли это, что метод 2 предпочтительнее в этом случае? Спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос