Lectura de memoria de Bytewise: "char firmado *" vs "char firmado" *

Uno a menudo necesita leer de memoria un byte a la vez, como en este ingenuomemcpy() implementación:

void *memcpy(void *dest, const void *src, size_t n)
{
    char *from = (char *)src;
    char *to   = (char *)dest;

    while(n--) *to++ = *from++;

    return dest;
}

Sin embargo, a veces veo que la gente usa explícitamenteunsigned char * en lugar de solochar *.

Por supuesto,char yunsigned char puede no ser igual. Pero, ¿hay alguna diferencia si usochar *, signed char * ounsigned char * cuando bytewise leyendo / escribiendo memoria?

ACTUALIZAR En realidad, soy plenamente consciente de quec=200 puede tener valores diferentes según el tipo dec. Lo que pregunto aquí es por qué la gente a veces usaunsigned char * en lugar de solochar * al leer la memoria, p. para almacenar unauint32_t en unchar[4].

Respuestas a la pregunta(10)

Su respuesta a la pregunta