Язык программирования C

Скачать в pdf «Язык программирования C»


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


В данном справочнике повсеместно встречаются комментарии, оформленные так, как этот абзац. Чаще всего эти комментарии поясняют различия между стандартом ANSI языка С и его определением, данным в первой редакции этой книги (или усовершенствованиями, внесенными впоследствии в различных компиляторах).

А.2. Лексические соглашения


Программа состоит из одной или нескольких единиц трансляции (translation units), хранящихся в виде файлов. Она проходит несколько этапов трансляции, описанных в разделе А. 12. На начальных этапах осуществляются лексические преобразования низкого уровня, выполняются директивы, заданные в программе строками, начинающимися с символа #, обрабатываются и раскрываются макроопределения. По завершении работы препроцессора (раздел А. 12) программа представляется в виде последовательности лексем (tokens).

А.2.1. Лексемы


Существует шесть классов лексем: идентификаторы, ключевые слова, константы, строковые литералы, знаки операций и прочие разделители. Пробелы, горизонтальные и вертикальные табуляции, символы конца строки, символы прогона страницы и комментарии (имеющие общее название “символы пустого пространства”) игнорируются; они рассматриваются компилятором только как разделители лексем. Такие символы необходимы, чтобы отделить друг от друга соседние идентификаторы, ключевые слова и константы.


Если входной поток уже разбит на лексемы до некоторого заданного символа, то следующей лексемой будет самая длинная строка символов, которые могут составлять лексему.

А.2.2. Комментарии


Комментарий начинается с символов /*, а заканчивается символами */. Комментарии нельзя вкладывать друг в друга, а также помещать внутри строковых или символьных литеральных констант.

Скачать в pdf «Язык программирования C»