Diferença entre memcpy e cópia por atribuição
Struct A
{
uint16_t len;
uint8_t cnt;
uint8_t unit;
uint32_t seq;
};
Essa estrutura A é serializada em umchar *
buf. Se eu quiser desserializar os valores individuais, por exemplo:
uint16_t len = 0;
memcpy(&len, buf, sizeof(len));
ou eu posso apenas fazer
uint16_t len = (uint16_t) buf;
Qual é o melhor ou é o mesmo?
Também para desserializar toda a estrutura, se eu fizer
A tmp;
memcpy(&tmp, buf, sizeof(A));
Isso funcionaria bem ou eu deveria estar preocupado com o preenchimento etc do compilador?