在C ++标准中:
sizeof(char)
,sizeof(signed char)
和sizeof(unsigned char)
为1
。
C ++中是否有其他类型的固定sizeof
?
空结构是否符合此定义?
答案 0 :(得分:10)
没有。如您所说,sizeof(signed char)
,sizeof(unsigned char)
和sizeof(char)
由标准定义为1.请注意char
必须是signed
或{{1但它始终被认为是一种独特的类型。 unsigned
其他任何内容都取决于实施,但会受到一些限制(例如sizeof
不能小于sizeof(long)
。)
C ++标准要求sizeof(int)
一个空类是一个大于零的整数值(否则指针运算会破坏)。
答案 1 :(得分:1)
1)C ++中是否还有其他具有固定大小的类型?
有些数组具有指定的大小:
sizeof(T[N]) == N * sizeof(T)
所以sizeof(char[42])
是42
。
2)空结构是否符合此定义?
空结构既不是char
,signed char
或unsigned char
,所以它与此定义不对应。 (顺便说一句,其sizeof
不能是0
)。
答案 2 :(得分:-1)
关于问题1,您还有stdint.h
中的类型。