C / C ++中整数类型别名的标准保证?例如:#34;未签名"总是等于" unsigned int"?

时间:2012-10-15 17:48:53

标签: c++ c types integer alias

第一个问题:

  • “unsigned”是否始终与“unsigned int”相同?
  • “signed”是否始终与“int”相同?
  • “short”总是与“签名短”相同吗?
  • 是......

第二个问题:

如果C / C ++标准指定了上述问题的答案,那么哪些段落与它们相关?

1 个答案:

答案 0 :(得分:12)

是的,这些都是有保障的。在C ++ 11中,参见§7.1.6.2[dcl.type.simple] / table 10,其中列出了所有简单类型说明符(及其组合)及其含义。例如,该表包括以下内容:

unsigned      => unsigned int
unsigned int  => unsigned int

signed        => int
signed int    => int
int           => int

C11在§6.7.2/ 2中有类似的映射(它的格式不同,但是它指定了相同的组等效组合,至少对于C和C ++共有的所有类型都是如此)。