Стандартные гарантии для псевдонимов целочисленных типов в C/С++? Например: "unsigned" всегда равно "unsigned int"?

Первый вопрос:

  • "unsigned" всегда совпадает с "unsigned int"?
  • "Подписан" всегда совпадает с "int"?
  • "короткий" всегда совпадает с "подписанным коротким"?
  • Есть...

Второй вопрос:

Если стандарт C/С++ указывает ответы на вышеперечисленные вопросы, какие параграфы связаны с ними?

Ответы

Ответ 1

Да, они гарантированы. В С++ 11 см. Раздел 7.3.1.2.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 и С++).