Побайтное чтение памяти: «знаковый символ *» против «беззнаковый символ *»

Часто нужно читать из памяти по одному байту за раз, как в этом наивномmemcpy() реализация:

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

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

    return dest;
}

Тем не менее, я иногда вижу, что люди явно используютunsigned char * вместо простоchar *.

Конечно,char а такжеunsigned char не может быть равным Но имеет ли значение, пользуюсь ли яchar *, signed char *, или жеunsigned char * когда байтовое чтение / запись памяти?

ОБНОВИТЬ: На самом деле, я полностью осознаю, чтоc=200 могут иметь разные значения в зависимости от типаc, Здесь я спрашиваю, почему люди иногда используютunsigned char * вместо простоchar * при чтении памяти, например для того, чтобы хранитьuint32_t вchar[4].

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

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