例如,实现可以定义sizeof(signed int)
为两个字节,sizeof(unsigned int)
为四个字节吗?尽管在C / C ++ references中没有找到任何明确禁止此操作的东西,但是有符号和无符号版本类型的最小大小是相对应的,而且我看不出任何逻辑上的理由来说明它们的大小不一样
答案 0 :(得分:6)
有符号整数类型的大小可以与C / C ++中其对应的无符号类型的大小不同吗?
不。对于C,int
和unsigned
具有相同的 size 。自信的C ++继承了相同的规范。
对于每种有符号整数类型,都有一个对应的(但不同的)无符号整数类型(用关键字
unsigned
指定),其使用相同的存储量(包括符号)信息),并且具有相同的对齐要求。
C11dr§6.2.56