C++.Бархатный путь


Объявление переменных


Мы приступаем к изучению синтаксиса операторов C++. В языке различают несколько типов операторов. Каждый из них выполняет в программе строго определённые функции.

Так, операторы объявления служат для ввода имён в программу. Процедура ввода имени переменной предполагает не только создание отличного от любого ключевого слова идентификатора, но и кодирование дополнительной информации о характеристиках объекта, с которым будет связано объявляемое имя.

К характеристикам объекта относятся тип объекта, класс памяти, время жизни объекта, множество других свойств, представляемых различными модификаторами.

Прежде чем приступить к описанию грамматики объявления переменных, введём для употребления в БНФ пару новых символов: [ и ]. Эти символы мы будем называть синтаксическими скобками. Заключение какого либо символа БНФ в синтаксические скобки означает, что этот символ в данной БНФ, а значит и в описываемом выражении является необязательным элементом. Он может входить в выражение, а может и не появляться вовсе.

Договоримся также об использовании в БНФ ещё одного символа. Этот символ будет иметь вид последовательности из пяти звёздочек, стоящих непосредственно за символом ::= в левой части формулы. Таким образом, содержащая этот символ БНФ будет выглядеть так: Описатель ::= *****

или даже так: ::= *****

Этот символ мы будем называть прерывателем БНФ. Он будет означать, что определение нетерминального символа прерывается и будет продолжено позже.

Оператор ::= ОператорОбъявления

::= *****

ОператорОбъявления ::= Объявление

Объявление ::= ОбъявлениеПеременной

::= *****

ОбъявлениеПеременной ::= ОбъявлениеПеременнойОсновногоТипа

::= *****

ОбъявлениеПеременнойОсновногоТипа ::= [СписокСпецификаторовОбъявления] [СписокОписателей];

СписокСпецификаторовОбъявления ::= [СписокСпецификаторовОбъявления] СпецификаторОбъявления

СпецификаторОбъявления ::= СпецификаторКлассаПамяти

::= СпецификаторТипа

::= cvСпецификатор

::= fctСпецификатор

::= *****

СпецификаторКлассаПамяти ::= auto ::= register ::= static ::= extern




- Начало -  - Назад -  - Вперед -