Этапы работы с программой на языке Си/Си++ в системе программирования
Все программы на языке Си и Си++ строятся по модульному принципу, т.е. состоят из множества модулей. Под модулем здесь имеется в виду библиотеки или ранее написанные части кода программы. Согласно принципам скрытия информации текст модуля обычно разделяют на заголовочный файл с расширением . h или . hpp и файл реализации с одним из расширений . c , . cpp , . obj , . lib , . asm .
После того, как исходный текст программы сформирован, на основе его должен быть выполнен или создан исполняемый файл с расширением .е xe. Этот процесс осуществляется в несколько этапов, структура такого процесса представлена на рис.1.
Вначале с помощью текстового редактора формируется и сохраняется в файлах с расширением . cpp исходный текст программы. Затем осуществляется этап препроцессорной обработки, содержание которого определяется директивами препроцессора, расположенными в начале исходного кода. В частности, по директиве # include препроцессор подключает к тексту программы заголовочные файлы стандартных библиотек. Результатом работы препроцессорной обработки является формирование полного текстового кода программы, который в явном виде не доступен программисту и достаточно объемен из-за подключаемых заголовочных файлов. Далее происходит компиляция программы, в ходе которой могут быть обнаружены синтаксические ошибки, которые должны быть устранены. В случае успешной компиляции получается объектный код программы в файле с расширением . obj. После компиляции выполняется этап компоновки и редактирования связей, осуществляемый с помощью встроенных системных программ языка. В результате компоновки создается исполняемый двоичный код программы в файле с расширением . exe, который запускается на выполнение и который является результатом написания программы.
Рис.1 Структура процесса компиляции
Особенности выполнения перечисленных действий зависят от конкретного компилятора языка Си/Си++ и той операционной системы, в которой он работает. Технические подробности можно изучить по документации для конкретного программного продукта. Например, при работе с интегрированными средами фирмы Borland необходимая информация может быть получена из руководств пользователя.
В простейшем случае программа на языке Си и Си++ представляет собой набор описаний и определений, и состоит из набора функций. Среди этих функций всегда должна быть функция с именем main (для консольных программ) или WinMain (для программ в 32 – разрядных операционных систем). Данные функции являются точками входа и выхода, и без них программа не может быть выполнена. Если функция не возвращает никакого значения в результате своего выполнения, то перед именем функции помещается служебное слово void, обозначающее тип отсутствия значения. Также каждая функция должна иметь набор параметров, если параметры отсутствуют, то скобки оставляют пустыми или в них указывается void.
За заголовком размещается тело функции. Тело функции - это последовательность определений, описаний и исполняемых операторов, заключенных в фигурные скобки. Ниже приведен листинг простейшей программы на языке Си/Си++, вычисляющая объем цилиндра по радиусу и высоте, значения которых вводятся с клавиатуры.
// подключение средств консольного потокового ввода/вывода
#include <iostream.h>
//подключение математических функций
#include <math.h>
/* главная функция программы */
void main ()
{
// объявление переменных
int r,v,h;
//вывод на экран
cout <<”\nВведите радиус и высоту цилиндра:";
//вывод на экран
cin >> r >> h;
//ввод значений с клавиатуры
v=M_PI*r*r*h;
cout <<"\nобъем цилиндра = " << v;
}
Основные элементы синтаксиса языка Си/Си++
Основные синтаксические правила и записи программ на языке Си/Си++ сводятся к следующему:
§ Прописные и строчные буквы считаются разными символами. При записи идентификатора могут использоваться латинские буквы, цифры и символ подчеркивания (_). Идентификатор не может начинаться с цифры и содержать в себе пробельный символ. Длина идентификатора не ограничена.
§ Пробельные символы могут размещаться в любом месте текста программы, но не внутри идентификатора.
§ Комментарии заключаются в скобки вида: /* текст комментария */ и могут вводиться в любом месте программы и занимать любое количество строк. Еще один способ введения комментария – размещение его после символов двойного слэша (//). Такой комментарий должен занимать конец строки и не должен переходить на следующую строку.
§Каждое (почти каждое) предложение языка кончается символом точка с запятой (;).
§ В строке могут размещаться несколько операторов.
§ Фигурные скобки выделяют составной оператор ({}). Все операторы, заключенные между такими скобками воспринимаются как один оператор.
§ Все используемые типы, переменные, константы, функции должны быть описаны или объявлены до их первого использования. Объявления могут встречаться в любом месте программы.
Также ряд слов в языке Си/Си++ имеет особое значение и не может использоваться в качестве идентификаторов. Такие зарезервированные слова называются служебными. Полный список служебных слов зависит от реализации языка, однако существует список основных служебных слов, определенный стандартом языка Си/Си++:
asm auto bad_cast
bad_typeid bool break
Case catch char
class const const_cast
Дата: 2019-02-02, просмотров: 276.