从C标准来看,int至少有16bit,long至少有32bit,long long如果有的话至少有64bit(有些平台可能不支持)。只是想知道标题中的句子是否总是正确的。
最佳答案
没有。该标准仅定义了每种类型的最小范围。可以想象 int 可以有一个 16 位的范围,但是有 48 位的填充,使其达到 64 位(8 字节,如果 CHAR_BITS == 8),而 long 是 32 位(4 字节)。
当然,这很愚蠢。但这并不是禁止的。
但是请注意,sizeof(char) == 1
, 根据定义。所以sizeof(char) <= sizeof(
还有什么 )
.
关于c - sizeof(int) <= sizeof(long) <= sizeof(long long) 总是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1240121/