Ключевое слово static
не относится к типу, в зависимости от контекста - это спецификатор хранилища или области видимости и не имеет никакого влияния на тип. Поэтому он не может использоваться как часть определения типа, поэтому он здесь недействителен.
typedef - это определение типа, то есть вы говорите, что «это имя» теперь относится к «этому типу», имя, которое вы даете, должно быть идентификатором, определенным стандартом языка, тип должен быть типом спецификатор, т.е. уже именованный тип, либо базовый тип, либо typedef'd, спецификатор struct, union, class или enum, с возможными классификаторами типов, то есть const или volatile.
Статическое ключевое слово, однако, не изменяет тип, оно говорит что-то об объекте (в общем, не в смысле ООП). это переменная, которая помещается в статическое хранилище, а не тип.
Похоже, вы пытаетесь использовать ЬурейеЕ как макрос, т.е.
#define MYINT static int
Оба ЬурейиЕ и статические классы для хранения на языке (строго актуален для C, и я считаю, что это верно и для C++). У вас может быть только один класс хранения в одном объявлении - в вашем примере есть два, следовательно, ошибка. –
+1. «Спецификатор typedef называется« спецификатором класса хранения »для удобства синтаксиса; – dirkgently