Спецификаторы Типа
Спецификаторами типов (спецификатор_типа) являются:
спецификатор_типа: простое_имя_типа class_спецификатор enum-спецификатор сложный_спецификатор_типа const
Слово const можно добавлять к любому допустимому спецификатору_типа. В остальных случаях в описании может быть дано не более одного спецификатора_типа. Объект типа const не является lvalue. Если в описании опущен спецификатор типа, он принимается int.
простое_имя_типа: char short int long unsigned float double const void
Слова long, short и unsigned можно рассматривать как прилагательные. Они могут применяться к типу int; unsigned может также применяться к типам char, short и long.
Спецификаторы класса и перечисления обсуждаются в и соответственно.
сложный_спецификатор_типа: ключ typedef-имя ключ идентификатор
ключ: class struct union enum
Сложный спецификатор типа можно использовать для ссылки на имя класса или перечисления там, где имя может быть скрыто локальным именем. Например:
class x { ... };
void f(int x) { class x a; // ... }
Если имя класса или перечисления ранее описано не было, сложный_спецификатор_типа работает как описание_имени; см. .