char和unsigned char有什么区别?

时间:2014-03-25 09:05:58

标签: c char unsigned-char

(编辑更改C / C ++至C)

请帮助我在C中的charunsigned char上找到一个清晰的说明。特别是当我们在嵌入式设备和普通PC之间传输数据时(unsigned char的缓冲区之间的差异普通char)。

2 个答案:

答案 0 :(得分:8)

你问的是两种不同的语言,但在这方面,两者的答案是(或多或少)相同。你真的应该决定你正在使用哪种语言。

的差异:

  • 他们是不同的类型
  • 它的实现定义char是签名还是未签名

相似点:

  • 它们都是整数类型
  • 它们的大小相同(一个字节,至少8位)

如果您只是使用它们来传输原始字节值而没有算术,则没有实际区别。

答案 1 :(得分:3)

char类型很特别。它不是unsigned char或signed char。这些是三种不同的类型(而int和signed int是相同的类型)。 char可能具有签名或无符号表示。

从3.9.1基本类型

  

Plain char,signed char和unsigned char是三种不同的类型。一个   char,一个签名的char和一个unsigned char占用相同的数量   存储并具有相同的对齐要求(3.11);就是他们   具有相同的对象表示。