Читайте также:
|
|
СписокИнструкцийПрепроцессора
СписокОператоров
Макроопределение
Оператор
Оператор
Оператор
Оператор
#define Идентификатор СтрокаЛексем
ОбъявлениеПеременной
ОбъявлениеФункции
ОпределениеФункции
ОпределениеФункции
#define IdHello "Hello…"
int *pIntVal[5];
/*
Объявлена переменная типа массив указателей размерности 5 на объекты типа int с именем pIntVal.
*/
СпецификаторОбъявления Описатель;
СпецификаторОбъявления Описатель ТелоФункции
СпецификаторОбъявления Описатель ТелоФункции
#define IdHello "Hello…"
int *pIntVal[5];
int Описатель (СписокОбъявленийПараметров);
float Описатель (СпецификаторОбъявления Имя) ТелоФункции
unsigned int MyFun2 (int Param1,...) СоставнойОператор
#define IdHello "Hello…"
int *pIntVal[5];
int MyFun1 (
СпецификаторОбъявления,
СпецификаторОбъявления АбстрактныйОписатель Инициализатор,
);
float MyFun2 (СпецификаторОбъявления ИмяОписатель)
ТелоФункции
unsigned int MyFun3 (int Param1,...) {СписокОператоров}
#define IdHello "Hello…"
int *pIntVal[5];
int MyFun1 (float, int *[5] = pIntVal);
/*
Объявление функции. В объявлении второго параметра используется
абстрактный описатель - он описывает нечто абстрактное, а, главное,
безымянное, вида *[5]. Судя по спецификатору объявления int,
расположенному перед описателем, "нечто" подобно массиву указателей
на объекты типа int из пяти элементов (подробнее о массивах после).
И эта безымянная сущность инициализируется с помощью инициализатора.
*/
float MyFun2 (char chParam1)
{
СписокОператоров
}
unsigned int MyFun3 (int Param1, …)
{СписокОператоров}
#define IdHello "Hello…"
int *pIntVal[5];
int MyFun1 (float, int *[5] = pIntVal); // Объявление функции.
// Определены две функции…
float MyFun2 (char chParam1)
{
extern int ExtIntVal;
char *charVal;
}
unsigned int MyFun3 (int Param1, …)
{
const float MMM = 233.25;
int MyLocalVal;
}
Итак, наш программный модуль представляет собой множество инструкций препроцессора и операторов. Часть операторов играет роль объявлений. С их помощью кодируется необходимая для транслятора информация о свойствах объектов. Другая часть операторов является определениями и предполагает в ходе выполнения программы совершение разнообразных действий (например, создание объектов в различных сегментах памяти).
После трансляции модуля предложения языка преобразуются во множество команд процессора. При всём различии операторов языка и команд процессора, трансляция правильно написанной программы обеспечивает точную передачу заложенного в исходный текст программы смысла (или семантики операторов). Программист может следить за ходом выполнения программы по операторам программы на C++, не обращая внимания на то, что процессор в это время выполняет собственные последовательности команд.
С процессом выполнения программы связана своеобразная система понятий. Когда говорят, что в программе управление передаётся какому-либо оператору, то имеют в виду, что в исполнительном модуле процессор приступил к выполнению множества команд, соответствующих данному оператору.
Дата добавления: 2015-10-13; просмотров: 106 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Модульное программирование. Структура модуля. Законы видимости | | | Назначение |