Часто нужно читать из памяти по одному байту за раз, как в этой наивной реализации 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]
.