После того как вы напишете и без ошибок откомпилируете свою первую программу, вы лучше освоитесь с принципами программирования. Вы поймете, какие операции выполняет каждая инструкция и в каком случае следует ее использовать.
Но по мере того, как программа усложняется, становится все труднее запоминать, почему вы употребили ту или иную инструкцию, особенно если вы решите снова посмотреть программу по прошествии некоторого времени с момента ее создания. Еще сложнее разобраться в программе, написанной другим человеком.
Добавление комментариев сделает любую программу более легкой для понимания. Комментарий — это сообщение для того, кто читает исходный текст программы. Комментарии могут помещаться в любом месте программы. Компилятор и компоновщик игнорируют комментарии, так что их содержимое не включается в объектный и исполняемый файлы.
Тому, кто только начинает программировать, введение комментариев кажется ненужной роскошью, ведь он и так тратит массу времени на создание программы. Действительно, небольшой, простой, легко тестируемой программе, состоящей из небольшого числа строк, комментарии не нужны. Однако, читая чужую программу, вы будете благодарны ее автору за любые пояснения, пусть даже программа не так уж и сложна.
Введение комментария начинается с символов /* и заканчивается символами*/. Выглядит это примерно так:
/*Эта программа выводит сообщение на экран*/main() { puts("OK"); return(0); }Символы /* указывают начало строки комментария, а символы */ отмечают ее конец. Все, что помещено между ними, Си игнорирует. Как правило, в самом начале текста программы программисты помещают строку комментария, чтобы пояснить цель ее создания. Внутри текста программы помещаются комментарии, поясняющие употребление отдельных инструкций или последовательность логических шагов. Такие комментарии обычно помещают после разделителя, то есть точки с запятой:
При записи инструкции и комментария в одной строке принято (исключительно для удобства чтения) разделять их некоторым количеством пробелов.
Комментарий может быть многословным и занимать не одну, а несколько строк. В этом случае символы */, указывающие конец комментария, можно поместить сразу после текста комментария или на отдельной строке:
/*Эта программа выводит сообщение на экран, она содержит инструкцию return(0) для совместимости с компиляторами, не имеющими автоматического возврата в систему*/Некоторые программисты добавляют звездочку в начало каждой дополнительной строки комментария:
/*Эта программа выводит сообщение на экран, она содержит* инструкцию return(0) для совместимости с компиляторами,* не имеющими автоматического возврата в систему*/Можно проявить фантазию:
/** * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** Эта программа выводит сообщение на экран, она содержит ** инструкцию return(0) для совместимости с компиляторами, ** не имеющими автоматического возврата в систему ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * **/Дополнительные звездочки вводятся исключительно для красоты. Компилятор игнорирует их, как и все остальное, что содержится между символами, ограничивающими строку комментария.
Комментарии в Си++
Весьма распространенным недосмотром, который часто допускают начинающие программисты, является то, что они забывают ставить символы */ в конце комментария, и в результате получают сообщение об ошибке компилятора. В Си++ использование комментария несколько облегчается за счет введения новой пары символов //, указывающих начало строки комментария. В этом случае концом комментария считается конец строки, так что нет необходимости отмечать его специальным символом:
Однако если комментарий занимает больше одной строки, каждая строка должна начинаться с символов //:
//Эта программа выводит сообщение на экран, она содержит//инструкцию return(0) для совместимости с компиляторами,//не имеющими автоматического возврата в системуВ Си++ можно по-прежнему использовать и символы /* и */.
Понятие параметров
Когда в программе используется функция, такая как puts(), принято говорить, что происходит вызов функции. Выражение «вызов функции» означает, что вы указываете Си выполнить некую функцию. Круглые скобки после имени функции могут оставаться пустыми или содержать параметры. Параметр — это элемент информации, необходимой для того, чтобы функция могла выполнить задачу*. Например, puts() является библиотечной функцией, она содержит инструкции, указывающие компьютеру вывести строку символов на экран монитора. Но какую именно строку он должен вывести? Мы должны определить это путем помещения соответствующей информации в круглые скобки. Подобная процедура называется передачей параметров.
Так, в инструкции
puts("Привет");слово «Привет» является параметром, который мы передаем функции. Как показано на рис.2, мы говорим компилятору, что он должен выполнить функцию puts(), используя при этом слово «Привет». Кавычки являются индикатором, который указывает, что мы хотим отобразить на экране именно буквы П-р-и-в-е-т, а не какую-либо переменную или константу с таким именем (смотри главу3).
Рис. 2. Передача параметра библиотечной функции
В этой книге в дальнейшем мы будем называть инструкции типа puts("Привет") функциями. В то же время вы должны помнить, что в библиотеке содержится только функция, называемая puts(), так что, строго говоря, puts("Привет") — это инструкция, которая вызывает функцию puts() и передает ей слово «Привет» в качестве параметра.
Слово «Привет» в нашем примере является одним параметром. Функция puts() может иметь только один параметр: символ, слово или фразу, которые мы хотим отобразить на экране. Позднее вы познакомитесь с функциями, которые могут иметь несколько параметров. Для многих функций передача параметров не является обязательной процедурой. По мере знакомства с функциями языка Си вы узнаете о параметрах больше.
Проверьте, правильно ли вы поняли разницу между функцией main() и другими функциями, такими как puts(). Мы используем имя main() для функции, содержащей наши инструкции компьютеру. Мы не вызываем функцию main(), но требуем выполнения содержащихся в ней инструкций, и одна из этих инструкций вызывает функцию puts(). Таким образом, puts() — это функция, вызываемая функцией main().
______________________