【发布时间】:2014-10-09 04:43:04
【问题描述】:
在N3797::3.9.1/2 [basic.fundamental]部分有:
有五种标准有符号整数类型:“
signed char”、“shortint”、“int”、“long int”和“long long int”。在此列表中,每种类型 至少提供与列表中前面一样多的存储空间。
标准明确定义 char, unsigned char, signed char 的大小为 1。据我所知,普通 ints 的大小取决于 INT_MIN 和 INT_MAX 未标准化。那么实现可以定义INT_MIN和INT_MAX这样sizeof(int) = 1;吗?
【问题讨论】:
-
我确信它可以,但我怀疑它是否有用或被使用。我可能是错的。见:stackoverflow.com/questions/1546510/…
-
@RickyMutschlechner:可以,也可以。有很多处理器(尤其是 DSP),其最小可寻址单元是 32 位(或 16、24、64、...),
sizeof(char) == sizeof(int) == 1。 -
@DmitryFucintv:确实如此。但它不一定是 8 位。
-
@DmitryFucintv
CHAR_BIT不是。
标签: c++