KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Стенли Липпман - Язык программирования C++. Пятое издание

Стенли Липпман - Язык программирования C++. Пятое издание

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн "Стенли Липпман - Язык программирования C++. Пятое издание". Жанр: Программирование издательство -, год -.
Перейти на страницу:

Заключительная часть определения функции, ее тело, представляет собой блок операторов (block of statements), который начинается открывающей фигурной скобкой (curly brace) и завершается закрывающей фигурной скобкой.

{

 return 0;

}

Единственным оператором в этом блоке является оператор return, который завершает код функции. Оператор return может также передать значение назад вызывающей стороне функции, как в данном случае. Когда оператор return получает значение, его тип должен быть совместим с типом возвращаемого значения функции. В данном случае типом возвращаемого значения функции main() является int, и возвращаемое значение 0 имеет тип int.

Обратите внимание на точку с запятой в конце оператора return. Точкой с запятой отмечают конец большинства операторов языка С++. Ее очень просто пропустить, и это приводит к выдаче компилятором непонятного сообщения об ошибке.

В большинстве операционных систем возвращаемое функцией main() значение используется как индикатор состояния. Возвращение значения 0 свидетельствует об успехе. Любое другое значение, как правило, означает отказ, а само значение указывает на его причину.

Ключевая концепция. Типы

Типы — это одна из наиболее фундаментальных концепций в программировании. К ней мы будем возвращаться в этой книге не раз. Тип определяет и содержимое элемента данных, и операции, которые возможны с ним.

Данные, которыми манипулируют наши программы, хранятся в переменных, и у каждой переменной есть тип. Когда типом переменной по имени v является Т, мы зачастую говорим, что "переменная v имеет тип Т" или "v есть Т".

1.1.1. Компиляция и запуск программы

Написанную программу необходимо откомпилировать. Способ компиляции программы зависит от используемой операционной системы и компилятора. Более подробную информацию о работе используемого вами компилятора можно получить в его документации или у хорошо осведомленного коллеги.

Большинство PC-ориентированных компиляторов обладают интегрированной средой разработки (Integrated Development Environment — IDE), которая объединяет компилятор с соответствующими средствами редактирования и отладки кода. Эти средства весьма удобны при разработке сложных программ, однако ими следует научиться пользоваться. Описание подобных систем выходит за рамки этой книги.

Большинство компиляторов, включая укомплектованные IDE, обладают интерфейсом командной строки. Если читатель не очень хорошо знаком с IDE используемого компилятора, то, возможно, имеет смысл начать с применения более простого интерфейса командной строки. Это позволит избежать необходимости сначала изучать IDE, а затем сам язык. Кроме того, хорошо понимая язык, вам, вероятно, будет проще изучить интегрированную среду разработки.

Соглашение об именовании файлов исходного кода

Используется ли интерфейс командной строки или IDE, большинство компиляторов ожидает, что исходный код программы будет храниться в одном или нескольких файлах. Файлы программ обычно называют файлами исходного кода (source file). На большинстве систем имя файла исходного кода заканчивается суффиксом (расширением), где после точки следует один или несколько символов. Суффикс указывает операционной системе, что файл содержит исходный код программы С++. Различные компиляторы используют разные суффиксы; к наиболее распространенным относятся .cc, .cxx, .cpp, .cp и .С.

Запуск компилятора из командной строки

При использовании интерфейса командной строки процесс компиляции, как правило, отображается в окне консоли (например, в окне оболочки (на UNIX) или в окне командной строки (на Windows)). Подразумевая, что исходный код функции main() находится в файле prog1.cc, его можно откомпилировать при помощи команды

$ CC prog1.cc

где CC — имя компилятора; $ — системное приглашение к вводу. Компилятор создаст исполняемый файл. На операционной системе Windows этот исполняемый файл будет называться prog1.exe, а компиляторы UNIX имеют тенденцию помещать исполняемые программы в файлы по имени a.out.

Для запуска исполняемого файла под Windows достаточно ввести в командной строке имя исполняемого файла, а расширение .exe можно пропустить:

$ prog1

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

$ .prog1

Символ ., следующий за наклонной чертой, означает, что файл находится в текущем каталоге.

Чтобы запустить исполняемый файл на UNIX, мы используем полное имя файла, включая его расширение:

$ a.out

Если бы необходимо было указать расположение файла, мы использовали бы точку (.) с последующей косой чертой, означающие, что наш исполняемый файл находится в текущем каталоге:

$ ./a.out

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

На UNIX для выяснения состояния выполненной программы применяется следующая команда:

$ echo $?

В операционной системе Windows для этого применяется команда

$ echo %ERRORLEVEL%

Вызов компилятора GNU или Microsoft

Конкретная команда, используемая для вызова компилятора С++, зависит от применяемой операционной системы и версии компилятора. Наибольшее распространение получили компилятор GNU и компилятор С++ из комплекта Microsoft Visual Studio. По умолчанию для вызова компилятора GNU используется команда g++:

$ g++ -о prog1 prog1.cc

где $ — это системное приглашение к вводу; -о prog1 — аргумент компилятора и имя получаемого исполняемого файла. Данная команда создает исполняемый файл по имени prog1 или prog1.exe, в зависимости от операционной системы. На операционной системе UNIX исполняемые файлы не имеют расширения, а в операционной системе Windows они имеют расширение .exe. Если пропустить аргумент -о prog1, то компилятор создаст исполняемый файл по имени a.out (на системе UNIX) или a.exe (на Windows). (Примечание: в зависимости от используемого выпуска компилятора GNU, возможно, понадобится добавить аргумент -std=c++0x, чтобы включить поддержку С++ 11.)

Для вызова компилятора Microsoft Visual Studio 2010 используется команда c1:

С:UsersmePrograms> cl /EHsc prog1.cpp

где C:UsersmePrograms> — это системное приглашение к вводу; UsersmePrograms — имя текущего каталога (или папки). Команда cl запускает компилятор, а параметр компилятора /EHsc включает стандартную обработку исключений. Компилятор Microsoft автоматически создает исполняемый файл с именем, которое соответствует первому имени файла исходного кода. У исполняемого файла будет суффикс .exe и то же имя, что и у файла исходного кода. В данном случае исполняемый файл получит имя prog1.exe.

Как правило, компиляторы способны предупреждать о проблемных конструкциях. Обычно эти возможности имеет смысл задействовать. Поэтому с компилятором GNU желательно использовать параметр -Wall, а с компиляторами Microsoft — параметр /W4.

Более подробная информация по этой теме содержится в руководстве программиста, прилагаемом к компилятору.

Упражнения раздела 1.1.1

Упражнение 1.1. Просмотрите документацию по используемому компилятору и выясните, какое соглашение об именовании файлов он использует. Откомпилируйте и запустите на выполнение программу, функция main() которой приведена в разд. 1.1.

Упражнение 1.2. Измените код программы так, чтобы функция main() возвращала значение -1. Возвращение значения -1 зачастую свидетельствует о сбое при выполнении программы. Перекомпилируйте и повторно запустите программу, чтобы увидеть, как используемая операционная система реагирует на свидетельство об отказе функции main().

1.2. Первый взгляд на ввод-вывод

В самом языке С++ никаких операторов для ввода и вывода (Input/Output — IO) нет. Их предоставляет стандартная библиотека (standard library) наряду с обширным набором подобных средств. Однако для большинства задач, включая примеры этой книги, вполне достаточно изучить лишь несколько фундаментальных концепций и простых операций.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*