' unsigned short var' vs' unsigned char var [2]'在C ++中

时间:2017-11-02 15:10:41

标签: c++ unsigned-char

在C ++中,我可以将变量声明为unsigned short或unsigned char(2字节),如下所示。但是,有什么不同吗?

unsigned short p;
unsigned char q[2];

1 个答案:

答案 0 :(得分:2)

的差异:

  • 类型不同。 C ++是一种强类型语言,编译器强制执行类型检查。
  • 尺寸可能不同。我们知道元素之间有no padding,但这两个变量可能没有相同的内存量, 因为short的大小为platform dependent
  • 字节序。 short是多字节数量,并且可以在某些系统上表示为最高有效字节(MSB)优先或最低有效字节(LSB)。 char数组没有重要的字节顺序。
  • 对齐。 char数组可能不会在short边界之一上分配short数组。
  • 混叠。可以将char转换为yarn ios-max数组,以便可以将其计算为字节数组,但反向alignment