Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Язык программирования Си++. Лекции.DOC
Скачиваний:
173
Добавлен:
02.05.2014
Размер:
775.17 Кб
Скачать
    1. Приоритеты операций

Приоритеты и направление рассмотренных выше операций сведены в следующую таблицу. Операции одинакового приоритета объединены в группы, чем выше положение группы в таблице, тем выше приоритет операций группы.

Таблица приоритетов рассмотренных выше операций

Операции одного приоритета

Направление выполнения операции.

! ~ ++ -- (тип) sizeof

* / %

+ -

<< >>

< <= > >=

== !=

&

^

|

&&

||

= *= /= %= += -= <<= >>= &= ^= |=

  1. Понятие о препроцессоре языка Си

Препроцессором называется составная часть компилятора, которая производит обработку исходного текста программы перед ее трансляцией. Управление работой препроцессора осуществляется с помощью специальных директив. Все директивы препроцессора начинаются со знака #.

Ранее была рассмотрена директива include. Вместо нее в исходный текст программы препроцессор вставляет содержимое файла, указанного в директиве.

Так, по директиве #include <stdio.h>в текст программы вставляет содержимое файлаstdio.h, находящегося в специальном системном каталоге, а только потом происходит трансляция.

Если в директиве #includeимя файла заключено в кавычки, то вставляемый файл вначале ищется по правилам, предусмотренным MSDOS, а только потом в специальном системном каталоге. Например, по директиве препроцессора#include "func.h"будет осуществлена вставка текста из файлаfunc.h, находящегося в текущем каталоге текущего диска.

Директива #defineиспользуется для назначения символических имен различным строкам текста. Например, директива:

#define PI 3.14159

осуществляет назначение имени PI строки 3.14159. В дальнейшем, вместо 3.14159 в программе можно использовать имя PI. Вместо него перед трансляцией программы препроцессор подставит соответствующую строку.

В принципе строка может быть сколь угодно сложной, например:

#define TITLE printf("-------sin(x)-------cos(x)-------");

Однако использовать такие конструкции не рекомендуется ввиду сложности отыскания ошибок.

  1. Операторы языка Си и приемы программирования

Оператор (statement - предложение) - блок, используемый при создании программы. Программа всегда представляет собой последовательность операторов ( предложений ).

Признаком конца оператора в простейшем случае является ";". Одиночная ";" является пустым оператором. Как было отмечено выше, точка с запятой поставленная в конце выражения превращает его в оператор.

Кроме простого оператора в языке Си вводится понятие составного оператора, который представляет собой несколько операторов, заключенных в фигурные скобки:

БНФ:

составной_оператор = "{" оператор { оператор } "}"

Пример:

{ a = b + c; scanf( "%lf", &t ); }

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

Все операторы языка Си, кроме оператора-выражения начинаются с ключевых слов. Например, описания начинаются с int, doubleи т.д.

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

Соседние файлы в папке C++