|
Программирование >> Структурное программирование
main() { for (int X = 1; X <= 10; х++) cout << square(х) << ; cout << endl; return 0; описание функции int square(int y) return у * y; Ш > 9 16 25 36 49 64 81 100 Рис. 3.3. Использование функции, определенной программистом Строка int square(int); является прототипом функции. Тип данных int в круглых скобках указывает компилятору, что функция square ожидает в операторе вызова целое значение аргумента. Тип данных int слева от имени функции square указывает компилятору, что square возвращает оператору вызова целый результат. Компилятор обращается к прототипу функции для проверки того, что вызовы функции square содержат правильный возвращаемый тип, правильное количество аргументов, правильный тип аргументов и правильный порядок перечисления аргументов. Прототипы функций детально обсуждаются в разделе 3.6. Формат описания функции имеет вид тип-возвращаемого-значения имя-функции (список-параметров) { объявления и операторы Функция создает копию значения х в параметре у. Затем square вычисляет у * у. Результат передается в ту точку main, из которой была вызвана square, и затем этот результатвыводится на экран. Благодаря структуре повторения for этот процесс повторяется десять раз. Описание square показывает, что эта функция ожидает передачи в нее целого параметра у. Ключевое слово int, предшествующее имени функции, указывает, что square возвращает целый результат. Оператор return в square передает результат вычислений обратно в вызывающую функцию. функция square, определяемая программистом iinclude <iostream.h> int square(int); прототип функции Типичная ошибка программирования 3.3 Если забыть вернуть значение из функции, в которой предполагается возвращение результата, это может привести к неожиданным ошибкам. Описание языка С++ указывает, что результат такой оплошности не определенен. В этом случае обычно компиляторы С++ выдают предупреждающее сообщение. Типичная ошибка программирования 3.4 Возвращение какого-то значения из функции, для которой тип возвращаемого значения объявлен как void, вызывает синтаксическую ошибку. Хороший стиль программирования 3.4 Несмотря на то, что пропущенный тип возвращаемого значения по умолчанию int, всегда задавайте тип возвращаемого значения явным образом. Исключением является функция main, для которой тип возвращаемого значения обычно не указывается. Список-параметров - это список разделенных запятыми объявлений тех параметров, которые получает функция при ее вызове. Если функция не получает никаких значений, список-параметров задается как void. Тип должен быть указан явно для каждого параметра в списке параметров. Типичная ошибка программирования 3.5 Объявление параметров функции, имеющих одинаковый тип, в виде float х, у вместо float х, float у. Объявление параметра float х, у вызовет ошибку компиляции, так как типы надо указывать для каждого параметра в списке. Типичная ошибка программирования 3.6 Точка с запятой после правой круглой скобки, закрывающей список параметров в описании функции, является синтаксической ошибкой. Типичная ошибка программирования 3.7 Повторное определение параметра функции как локальной переменной этой функции является синтаксической ошибкой. Имя-функции - это любой правильно написанный идентификатор. Тип-возвращаемого-значения - это тип данных результата, возвращаемого из функции оператору ее вызова. Тип возвращаемого значения void указывает, что функция не возвращает никакого значения. Компилятор предполагает тип int для неопределенного типа возвращаемого значения. Типичная ошибка программирования 3.2 Пропуск типа возвращаемого значения в описании функции вызывает синтаксическую ошибку, если прототип функции определяет возвращаемый тип иначе, чем int. Хороший стиль программирования 3.5 Не используйте одинаковые имена для аргументов, передаваемых в функцию, и соответствующих параметров в описании функции, хотя это и не является ошибкой. Использование разных имен помогает избежать двусмысленности. Объявления и операторы внутри фигурных скобок образуют тело функции. Тело функции рассматривается как блок. Блок - это просто составной оператор, который включает объявления. Переменные могут быть объявлены в любом блоке, а блоки могут быть вложенными. При любых обстоятельствах функция не может быть описана внутри другой функции. Типичная ошибка программирования 3.8 Описание функции внутри другой функции является синтаксической ошибкой. Хороший стиль программирования 3.6 Выбор осмысленных имен функций и осмысленных имен параметров делает программу более легко читаемой и помогает избежать излишних комментариев. Замечание по технике программирования 3.5 Обычно функция должна быть не длиннее одной страницы. Еще лучше, если она будет не длиннее половины страницы. Безотносительно к длине функции она должна хорошо определять только одну задачу. Небольшие функции способствуют повторному использованию программных кодов. Замечание по технике программирования 3.6 Программа должна быть написана как совокупность небольших функций. Это облегчает написание, отладку, сопровождение и модификацию программы. Замечание по технике программирования 3.7 Функция, требующая большого количества параметров, возможно, выполняет слишком много задач. Попробуйте разделить такую функцию на небольшие функции, которые выполняют отдельные задачи. Заголовок функции по возможности не должен занимать более одной строки. Замечание по технике программирования 3.8 Прототип функции, заголовок функции и вызовы функции должны быть согласованы между собой по количеству, типу и порядку следования аргументов и параметров и по типу возвращаемых результатов. Существует три способа возврата управления к точке, из которой была вызвана функция. Если функция не должна возвращать результат, управление возвращается или просто при достижении правой фигурной скобки, завершающей функцию, или при выполнении оператора return;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |