Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Проблема обмена информацией (данными) между функциями.




 

Объект, определенный в программе, обладает двумя свойствами.

Это:

- «время жизни» объекта – это время, в течение которого система гарантирует сохранность информации, записанной в его области памяти;

- «область видимости» объекта – это область программы, в которой информация в памяти объекта доступна для обработки (для чтения и изменения).

 

Программа состоит из отдельных объектов – функций. Каждая функция – это независимая область памяти. Блок задается фигурными скобками { }. Тело функции ограничено блоком.

Если объект–данное определен в блоке, то такой объект называется локальным объектом.

Локальный объект «живет» в блоке, то есть записанная в нем информация не будет разрушена, пока блок активен, то есть выполняются его инструкции. Локальный объект, определенный в блоке «жив», но может быть не виден в нем.

Локальный объект «виден» в блоке, то есть информация, записанная в нем, доступна для обработки, только в области памяти этого блока от точки определения объекта в инструкции его определения до конца блока, в котором он определен.

 

В этой функции fun «живут» локальные объекты a, b (два объекта), c, x.

 

Объект a определен в параметре, который получен по значению. Его область видимости – все тело функции fun.

Объект b, определенный в параметре, получен по значению. Его область видимости – все тело функции fun, кроме области вложенного блока (желтое пространство).

В этом блоке определен другой объект с именем b. Этот объект «живет» в этом вложенном блоке.Его область видимости от точки определения до скобки, закрывающей этот блок. Этот объект b закрывает в этом месте объект b, определенный в параметре. Объект b, определенный в параметрах функции fun, во вложенном блоке «жив», информация в нем не испорчена, но не доступна.

Обратите внимание, что в инструкции return x + b;виден и используется тот объект b, который определен в параметрах.

Объект х создан в инструкции определения float x;. Его область видимости от этой точки определения до конца блока, ограничивающее тело функции fun.

В инструкции-выражении x = (a * b + c); не правомерно использован объект c. Он «живет» и виден во внутреннем блоке функции.

 

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

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

Есть несколько способов такого обмена информацией. Изучим эти способы.

 

 


Поделиться:

Дата добавления: 2015-01-01; просмотров: 148; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты