因为C语言在内部使用char作为整数(存储对应的ASCII)。对于内部计算,我们可以使用signed和unsigned char。
除此之外,任何其他用途??
答案 0 :(得分:0)
signed
和unsigned
char
首先是小整数。你需要存储大量的小数字(在[-127,+ 127]¹或[0,255]范围内)?与几乎任何其他类型相比,您可以使用signed
或unsigned
字符数组并节省内存。这就是为例如图像 - 灰度图像通常存储为unsigned char
的数组(并且RGB图像通常存储为3 unsigned char
个组件的数组)。
char
的第二种用法是字符串,你可能已经看过了;请注意char
是signed char
和unsigned char
的不同类型,其签名是实现定义的。这在许多情况下都是愚蠢和不方便的 - 并且在调用unsigned char
/ toupper
家族的函数时会导致诸如强制转换为isupper
等令人伤心的事情。
最后,char
&合。被定义为C抽象机器的“底层存储”。根据定义sizeof(char) == 1
,任何类型都可以通过(signed|unsigned)? char
指针进行别名来访问其基础位表示。
signed char
的最小范围,因为它仍然允许符号和幅度表示;更现实的是,在本世纪的任何现实世界的机器上它至少会是[-128,127]。