С– подключение к файлу main.cppстандартного заголовочного файлаstdafx.h.

Dопределение глобальных переменных, доступных во всех файлах программы при объявлении их в этих файлах как extern.

 

В блоках от E до Gпредставлено определение головной функции main(), обязательной для программы на С++ и получающей управление первой после запуска программы на выполнение. Функции main() могут передаваться аргументы. Одна из возможных форм описания формальных параметров функции main() представлена в блоке E.

E– заголовок функции main(): int argc – число строк-аргументов переданное в программу; char** argv (или char* argv[]) – указатель на строки-аргументы; аргумент argv[0] является именем запускаемого на выполнение файла; argv[1] – это первый аргумент-строка; argv[2] – это второй аргумент-строка и т.д. Количество строк-аргументов равно argc.

Если при выполнении программы задать в качестве аргумента символ +, то строки будут упорядочены по возрастанию (от a к z). Если при выполнении программы задать в качестве аргумента символ -, то строки будут упорядочены по убыванию.

Задание аргумента при выполнении программы в среде Microsoft Visual C++ 2005 осуществляется в поле Command arguments подкоманды Debugging команды
Projectà имя_проекта Properties…(Projectà имя_проекта Properties…à окно имя_проекта Property Pages à Configuration Properties à Debugging àполе Command arguments).

F– определение локальной целой переменной numlines.

G – перед обращением к argv[1][0] проверяется число аргументов argc, т.к. при отсутствии второго аргумента выражение argv[1][0] не имеет смысла.

Блок содержит последовательные вызовы функций ввода – rdlines(), сортировки – bblsort() и вывода – wrlines() строк. При этом функции rdlines() и wrlines() определены в файле main.cpp, а функция bblsort() – в файле bblsort.cpp.

 

В блокахHиIпредставлено определение функции rdlines(), возвращающей целое число прочитанных строк. Спецификатор static указывает, что функция используется только в данном файле.

Переменная i определена как локальная в блоке. Если вводится нормальная строка (вызов функции cin.getline(Line[i],LINESIZE) возвращает значение отличное от 0), то функция rdlines() возвращает номер строки; в противном случае (например, при нажатии клавиш Ctrl+Z) , ввод строк завершается.

Jопределение функции wrlines(). Функция не возвращает значения, поэтому определена как имеющая тип void.

БлокиотKдоOвключительно представляют содержание файла bblsort.cpp с функцией сортировки bblsort()и вызываемыми в ее теле функциями сравнения – lexcmp() иобмена– swap() строк.