标准指定了可以由算术整数类型保留的最小范围。但是,是否有保证,对于每个有符号整数,其无符号等效项具有相同的大小?
换句话说,是否总是如此:
sizeof(short) == sizeof(unsigned short)
sizeof(int) == sizeof(unsigned int)
sizeof(long) == sizeof(unsigned long)
sizeof(long long) == sizeof(unsigned long long)
?
但是,对于每个有符号整数,有没有保证相等的无符号大小相同?
是
从[basic.fundamental]/3 [摘录,重点我的]:
[basic.fundamental] / 3
对于每种标准的带符号整数类型,都有一个 对应的(但不同的)标准无符号整数类型: “
unsigned char
”,“unsigned short int
”,“unsigned int
”, “ [unsigned long int
””和“unsigned long long int
”,每个 占用相同的存储空间并具有相同的对齐方式 要求为相应的有符号整数类型; [...]