В описании можно использовать следующие спецификации: спецификация-описания: спецификация-класса-памяти спецификация-типа спецификация-fct спецификация-шаблона-типа friend typedef спецификации-описания: спецификации-описания opt спецификация-описания Самая длинная последовательность конструкций спецификация-описания,которая, возможно, является именем типа, образует в описании конструкциюспецификации-описания. Последовательность должна быть согласованной,что объясняется ниже. Например, typedef char* Pc; static Pc; // ошибка: нет имени Здесь описание static Pc является незаконным, поскольку не указаноникакого имени статической переменной типа Pc. Чтобы иметьпеременную типа int с именем Pc, необходимо задатьспецификацию-типа int, чтобы показать, что (пере)определяетсяимя Pc из typedef, а не просто Pc является одним из элементовпоследовательности конструкций спецификация-описания, например, void f(const Pc); // void f(char* const) void g(const int Pc); // void g(const int) Укажем, что поскольку signed, unsigned, long и short поумолчанию трактуются как int, конструкция имя-typedef, котораяпоявляется после одной из перечисленных спецификаций типа,должна задавать (пере)определяемое имя, например, void h(unsigned Pc); // void h(unsigned int) void k(unsigned int Pc); // void k(unsigned int)