经常需要按字节一次从内存中读取,就像这个朴素的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]
中。