无论实际需要多少位,C标准都要求sizeof(char)为1.
其他数据类型是以字节还是字符来衡量的,以防它们不相同?基本上,假设CHAR_BIT为16,sizeof(int16_t)则等于1或2?
oua*_*uah 13
基本上,假设CHAR_BIT为16,sizeof(int16_t)将等于1或2
对象的大小(由sizeof运算符产生)以字节为单位测量,C中的字节有CHAR_BIT位.
(C99,6.2.6.1p4)"存储在任何其他对象类型的非位字段对象中的值由nx个CHAR_BIT位组成,其中n是该类型对象的大小(以字节为单位)."
int16_t如果存在的类型具有正好16位的宽度并且没有填充.这意味着,如果CHAR_BIT == 16,那么sizeof (int16_t) == 1
Die*_*Epp 12
如果CHAR_BIT是16并且int16_t存在,那么sizeof(int16_t) == 1.该int8_t类型将不存在,因为C中的所有内容必须以字节为单位进行测量(在此系统上,每个字节将为16位...这就是术语"八位字节"比"字节"更精确的原因).
有DSP系统和旧的超级计算机(Cray公司较早系统),其中short,int,long都具有相同的尺寸,说64位.
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |