有符号整数类型的大小可以与C / C ++中其对应的无符号类型的大小不同吗?

时间:2019-08-19 01:29:05

标签: c++ c

例如,实现可以定义sizeof(signed int)为两个字节,sizeof(unsigned int)为四个字节吗?尽管在C / C ++ references中没有找到任何明确禁止此操作的东西,但是有符号和无符号版本类型的最小大小是相对应的,而且我看不出任何逻辑上的理由来说明它们的大小不一样

1 个答案:

答案 0 :(得分:6)

  

有符号整数类型的大小可以与C / C ++中其对应的无符号类型的大小不同吗?

不。对于C,intunsigned具有相同的 size 。自信的C ++继承了相同的规范。

  

对于每种有符号整数类型,都有一个对应的(但不同的)无符号整数类型(用关键字unsigned指定),其使用相同的存储量(包括符号)信息),并且具有相同的对齐要求。
  C11dr§6.2.56