Спецификаторы
В этом разделе описывается компонент decl-specifiers (описатели объявления) декларации.
Следующие местозаполнители и ключевые слова языка являются определителями объявления:
storage-class-specifier
type-specifier
function-specifier
__declspec( extended-decl-modifier-seq )
Заметки
Часть decl-specifiers объявления является самой длинной последовательностью decl-specifiers, которая может использоваться для обозначения имени типа и не включать модификаторы указателя или ссылки. Остальная часть объявления является declarator, включая представленное имя.
В следующей таблице перечислены четыре объявления, а затем — компоненты decl-specifers и declarator по отдельности.
Объявление |
decl-specifiers |
declarator |
---|---|---|
char *lpszAppName; |
char |
*lpszAppName |
typedef char * LPSTR; |
char |
*LPSTR |
const int func1(); |
const int |
func1 |
volatile void *pvvObj; |
volatile void |
*pvvObj |
Поскольку signed, unsigned, long и short подразумевают int, имя typedef, следующее за одним из этих ключевых слов, принимается в качестве члена declarator-list,, а не decl-specifiers.
Примечание
Поскольку имя можно объявить повторно, его интерпретация относится к самой последней декларации в текущей области.Повторное объявление может повлиять на способ интерпретации имен компилятором, в особенности — имен typedef.