| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
ве функции. "Параметр" обозначает переменную, определяемую в
заголовке функции, которая будет содержать в себе передавае-
мое значение.
Грамматические правила структуры фраз и лексики языка
Грамматические правила лексикиязыка Turbo C++ описаны
на стр. 5 - 58 оригинала; грамматические правила структуры
фраз Turbo C++ описаны на стр. 58 - 98 оригинала.
Грамматические правила лексики языка рассматриваются с
точки зрения существованияразличных категорий слово-ориенти-
рованных языковых единиц,называемых лексемами, распознавае-
мых компилятором. Грамматические правила структуры фраз под-
робно определяют допустимые способы группирования этих
лексем в выражения, операторы и прочие смысловые единицы
языка.
Лексемы Turbo C++ образуются из последовательности опе-
раций, выполняемых с вашейпрограммой компилятором и препро-
цессором языка.
Программа на Turbo C++ начинает свое существованиекак
последовательность ACSII-символов,представляющих собой ее
исходный код, создаваемый нажатиями клавиш при работе в под-
ходящем текстовом редакторе (например, в собственном редак-
торе Turbo C++). Базовая программная единица в Turbo C++
представляет собой файл. Обычно такойфайл соответствует фай-
лу DOS, находящемуся в оперативной памяти или на диске и
имеющему созданное по правилам DOS имя и расширение .C или .
CPP.
Сначала выполняется просмотр текста программы препро-
цессором, который ищет в нем специальные директивы препро-
цессора (см. стр. 133 оригинала). Например, директива
#include <включаемый_файл> добавляет (или включает) впрог-
рамму перед фазой компиляции содержимое файла <включае-
мый_файл>. Препроцессор также выполняет расширение любых
встреченных в программах или файлах включения макросов.
Пробельные символы
На фазе компиляции, отвечающей за распознавание лексем,
файл исходного кода программы подвергается лексическому ана-
лизу (т.е. разбиению налексемы и пробелы). Пробельными будут
обобщенно именоваться собственно символы пробелов, горизон-
тальные и вертикальныесимволы табуляции, символы новой стро-
ки и комментарии. Пробельные символы служат для обозначения
мест начала и конца лексем, и сверх этой функции, для исклю-
чения из компиляции всех избыточных символов, не входящих в
состав лексем. Например, следующие две последовательности,
int i; float f;
и
- 9 -
int i ;
float f;
лексически идентичны, а их лексический анализ в обоих
случаях дает шесть лексем:
int i ; float f ;
ASCII-символы, обычно рассматриваемые как пробельные,
могут входить в строки литералов, и в данном случаебудут за-
щищены от нормального процессаразбиения на лексемыи пробелы;
другими словами, они станут представлять собой часть строки:
char name[] = "Borland International";
разбивается на семь лексем, включая и лексему строки
литералов "Borland International".
"Склеивание" строк символом \
Имеется специальный случай, когда передпоследним симво-
лом новойстрокинаходится символ наклонной черты влево (\). В
таком случае символы наклонной черты влево и символ новой
строки отбрасываются, что позволяет рассматривать две физи-
ческие строки текста как единое целое.
"Borland \
International"
будет рассматриваться как "Borland International" (до-
полнительную информацию см. на стр. 17 оригинала, "Строковые
литералы"
Комментарии
Комментарии представляют собой текстовые части, пред-
назначенные для аннотирования программы.Комментарии исполь-
зуются исключительно самим программистом; передлексическим
анализом они исключаются из исходного текста программы.
Существует два способа указания на комментарии: тради-
ционный метод C и метод C++. Они оба поддерживаются Turbo C+
+, и кроме того, имеется дополнительное, опциональное расши-
рение, позволяющее организовывать вложенные комментарии.
Разрешается смешанное и комбинированное использование ком-
ментариев любого типа в программах C и C++.
Комментарии C
Традиционный комментарий C представляет собой любую
последовательность символов, помещаемую послепары симво-
лов/*. Признаком конца комментарияслужитперваяпара символов*
/, встретившаяся после исходной пары /*. После выполнения
макрорасширения вся эта последовательность целиком, включая
четыре разделительных символа комментария,заменяется на один
пробел. Отметим, чтонекоторые реализации C удаляют коммента-
рии, не заменяя их на пробелы.
Turbo C++ не поддерживает не-мобильной стратегии встав-
ки лексем с помощью /**/. Вставка лексем в Turbo C++ выпол-
няетсяпри помощи заданной ANSI пары символов ##, следующим
образом:
#define VAR(i,j) (i/**/j) /* не будет работать */
#define VAR(i,j) (i##j) /* в Turbo C++ будет работать */
#define VAR(i,j) (i ## j) /* также будет работать */
В Turbo C++
- 10 -
int /* объявление */ i /* как счетчика */;
после лексического анализа даст
int i ;
то есть три лексемы: Int I ;
Вложенные комментарии
ANSI C не разрешаетвложенность комментариев. Попытка
комментировать приведенную выше строку в виде
/*int /* объявление */ i /как счетчика */; */
окончится неудачей, поскольку область действия первой
пары /* будет ограничена первой парой */. Это даст в резуль-
тате лексического анализа
i ; */
что приведет к генерированию состояния синтаксической
ошибки.
По умолчанию Turbo C++ не позволяет вложенность коммен-
тариев, однако это умолчание может быть переопределено опци-
ей компилятора. Разрешить вложенность комментариев можно ли-
бо при помощи опции -C (компилятора командной строки), либо
через меню интегрированной среды программирования
O\!C\!Source Options.
Комментарии C++
Для создания вкоде C комментариеввы можете также ис-
пользовать символы //. Это средство специфично для Turbo
C++.
C++ позволяетсоздание размещаемого в одной строке ком-
ментария при помощи двух подряд следующихсимволов наклонной
черты(//). Такой комментарий может начинаться в любой пози-
ции строки, и включает в себя все, что расположено до симво-
ла новой строки:
class X (* // это комментарий
... *);
Разделители комментариев и пробелы
В редких случаях пробелы перед /* и // или после */,
хотя и не являются синтаксически обязательными, нопозволяют
избежать проблем, связанных с мобильностью. Например, код C++
int i = j//* деление на k*/k;
+m;
при лексическом анализе дастint i = j +m; а не
int i = j/k;
+m;
как это можно было бы ожидать по традиционным соглаше-
ниям C. Более удобочитаемая форма
int i = j/ /* деление на k*/ k;
+m;
- 11 -
позволяет избежать этой проблемы.
Лексемы
Turbo C++ распознает лексемы шести классов: ключевые
|
adfun.ru
|
|
|
|