Локальные и глобальные данные

Структура функций

Любая функция состоит из:

заголовка, который еще называют объявлением,

тела функции, которое называют определением.

Синтаксис заголовка:

 

тип имя (список параметров)

Типэто имя типа той переменной, которая представляет собой результат операций, совершаемых функцией. Например, short, int, float. Если результатом функции является несколько переменных или вообще результат из функции не возвращается (не выдается), то вместо имени типа результата пишется служебное слово void (пусто).

Имяэто идентификатор функции, который выбирается ее создателем. Он должен быть таким, чтобы вызывал ассоциации, говорящие о назначении функции. Например, если функция определяет наибольшее число ряда, то уместно установить ей имя max.

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

Тело функции – это совокупность операторов, заключенных в фигурные скобки. Собственно, в теле функции и совершаются все те операции, которые и приводят к получению результата.

Структурно любая функция имеет вид:

Заголовок

{

Оператор1;

Оператор2;

. . . . . . . . . . .

Оператор N;

}

Основная идея применения функций состоит в стремлении сократить объем программы и сделать ее легко читаемой и понятной. При реализации этой идеи вся программа расчленяется на несколько логически обоснованных фрагментов. Каждый из этих фрагментов оформляется в виде функции и имеет свое определенное назначение, то есть свою специализацию. Среди этих функций обязательно должна быть главная функция со стандартным именем main( ). Ее основное назначение – обеспечивать вычислительный процесс. Она играет роль своеобразного конструктора, создавая из отдельных фрагментов (функций) вычислительный процесс. Работа главной функции main( ) сводится к тому, что в определенный момент вычислений она вызывает специализированную функцию для выполнения требуемой части вычислений. Таким образом, каждая часть вычислительного процесса выполняется определенной специализированной функцией. Бывают случаи, когда одна и та же функция может вызываться несколько раз в течение одного вычислительного процесса. Например, функция, специализирующаяся на выводе на экран матрицы, может вызываться дважды: первый раз в начале вычислений, чтобы показать исходную матрицу, а второй раз в конце вычислений, чтобы показать результирующую матрицу.

Данные, которые используются в вычислениях с применением функций, бывают двух видов:

локальные,

глобальные.

Локальныеэто такие данные, которые описываются и используются в пределах одной функции. Использование этих данных за пределами такой функции невозможно, они попросту «не признаются» другими функциями. Для этих функций они неизвестны. Поскольку локальные данные не выходят за пределы «своей» функции, то допускается использование одинаковых имен локальных данных в различных функциях. Это не приводит к неразберихе, так как они изолированы друг от друга, не пересекаются и «не знают» о существовании друг друга.

Глобальныеэто данные, которые описываются за пределами всех функций, сразу после директив. Областью действия глобальных данных является любая функция. Это означает, что глобальные данные могут участвовать в каких–либо операциях любой функции, то есть они могут беспрепятственно «входить» в любую функцию. Именно эта особенность глобальных данных может привести к тому, что глобальные данные, «войдя» в какую–либо функцию, могут «встретиться» с локальными данными этой функции, имеющими такие же имена. То есть произойдет «пересечение» локальных и глобальных данных. Компилятор на это никак не отреагирует. Просто глобальные данные будут восприниматься как локальные, и в этом качестве они будут использоваться в операциях функции. В некоторых случаях это может привести к ошибкам вычислений. Поэтому при написании программ следует особенно тщательно следить за недопущением таких случаев.