Операционная система UNIX. Руководство программиста

       

C при помощи описаний. Описания


Способ интерпретации идентификаторов задается в C при помощи описаний. Описания имеют вид:
описание: спецификаторы список_описателей_данных ;
Описатели в списке_описателей_данных содержат описываемые идентификаторы. Спецификаторы задают тип и класс памяти идентификаторов.
спецификаторы: спецификатор_типа спецификаторы спецификатор_класса спецификаторы
Набор спецификаторов должен быть непротиворечивым (смысл этого замечания раскрывается ниже).



описатель_данных: описатель инициализатор
описатель: идентификатор ( описатель )
* описатель описатель ( )
описатель [ константное_выражение ]
спецификатор_структуры_или_объединения: struct { список_структ_описаний }
struct идентификатор { список_структ_описаний }


struct идентификатор union { список_структ_описаний }
union идентификатор { список_структ_описаний }
union идентификатор
список_структ_описаний: структ_описание структ_описание список_структ_описаний
структ_описание: спецификатор_типа список_структ_описателей ;
список_структ_описателей: структ_описатель структ_описатель , список_структ_описателей
структ_описатель: описатель описатель : константное_выражение : константное_выражение
инициализатор: = выражение = { список_инициализаторов }
= { список_инициализаторов , }
список_инициализаторов: выражение список_инициализаторов , список_инициализаторов { список_инициализаторов }
{ список_инициализаторов , }
имя_типа: спецификатор_типа абстрактный_описатель
абстрактный_описатель: пусто ( абстрактный_описатель )
* абстрактный_описатель абстрактный_описатель ( )
абстрактный_описатель [ константное_выражение ]
имя_определяемого_типа: идентификатор


Содержание раздела