Если параметры отсутствуют, то и в прототипе, и в описании, и при вызове функции необходимо обязательно записать пустые круглые скобки.
· точка возврата из функции определяется как место в программе, где описывается действие, которым продолжается программа по окончании выполнения вызова подпрограммы;
· особенности return: оператор обязателен, если в заголовке функции тип результата отличен от void, т.е. возвращается одно значение;можно возвращать константу или значение одной переменной (как частный случай выражения); оператор может быть единственным в функции;таких операторов может быть в функции несколько, и находиться они могут не обязательно в конце функции, но выполняется всегда один из них;
· безусловный выход из функции реализуется через операторы: return – завершение функции, переход к оператору, следующему за вызовом этой функции; exit(n) – завершение работы программы с кодом n, при этом возможно использование функции atexit() дляобработки завершения программы при выходе из нее;
· локальная память функции (локальная память процесса выполнения вызова функции) – это совокупность участков памяти, где хранятся:
§ параметры-значения функции
§ собственные локальные переменные функции
§ точка возврата из функции
§ переменная, в которой запоминается значение, возвращаемое из вызова
· статическая память программы – область под программу и ее переменные;
· программный стек – это память, выделяемая при вызове функции и освобождаемая после завершения ее работы (автоматическая память программы, область локальной памяти функции); механизм работы стека – Last In First Out (первый пришел, последний ушел);
· локальные статические переменные – это возможность сохранения переменных между вызовами функций:
§ размещение локальных статических переменных в памяти – вместе с глобальными переменными программы
§ доступность – только во время выполнения вызова функции, в которой они определены.
Приемы создания надежных подпрограмм
· устойчивость – идентификация вариантов завершения подпрограммы:
¨ отслеживание ошибок на входе и публикация сообщений об этом:
§ выдача сообщения и прекращение работы программы – плохой способ;
§ присваивание специальному параметру определенных значений – не очень хороший способ;
§ контролирующая функция – самый надежный способ для подпрограмм с несколькими вариантами завершения: подпрограмма определяется как функция, которой присваиваются значения, свидетельствующие о варианте ее завершения
· корректность – правильность вычислений:
¨ отдельные алгоритмы – в функции;
¨ способы повышения корректности взаимодействия программы с подпрограммами:
§ функции при выполнении вычислений в качестве рабочих используют локальные переменные;
§ передача данных осуществляется через параметры, а не через глобальные переменные
§ для передачи исходных данных используются передача параметров по значению;
§ для передачи в функцию исходных данных большого размера используется передача параметров по указателю или по ссылке;
§ передача параметров по указателю используется для возврата из функции результатов;
§ использование в функциях глобальных переменных допускается только в исключительных случаях, например, при реализации набора операций над одной и той же общей (глобальной) переменной;
§ функции должны выполнять контроль своих параметров и вычислений, поэтому их надо оформлять в виде контролирующих функций, чтобы проверять все возвращаемые значения;
§ не надо смешивать в одной функции обработку информации и взаимодействие с внешними устройствами.
[1] Операторы ветвления и цикла часто называют структурными, а программирование с использованием структурных операторов определяют как структурное программирование
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.