Что такое локальные данные

Что такое локальные данные

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Видеокарты поддерживающие 4 монитора

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Учись учиться, не учась! 10993 — | 8204 — или читать все.

Структура программы. Глобальные и локальные данные (области видимости и время жизни)

Структура программы

Любая программа на языке C++ представляет собой одну или множество функций. Среди этих функций должна обязательно присутствовать главная функция main (), являющаяся точкой входа в программу (выполнение программы начинается с выполнения этой функции).

Основное требование по использованию функций состоит в том, что определение любой функции должно предшествовать ее вызову (компилятору необходимо “знать”, как вызвать ту или иную функцию: какое значение она возвращает, что собой представляют ее параметры). Возникновение коллизий, связанных с этим правилом, разрешается использованием прототипов функций.

В языке C++ отсутствует понятие вложенных функций, то есть внутри определять другие функции нельзя.

Глобальные и локальные данные

В языках программирования очень большое значение имеют понятия область видимости и время жизни объектов программы.

Область видимости это часть текста программы, в котором может быть использован данный объект.

Время жизни переменной — интервал выполнения программы, в течение которого программный объект существует в памяти.

Оба эти понятия тесно связаны с понятием блока программы. Блоком в программе является последовательность объявлений или операторов, заключенных в фигурные скобки <>. Существуют два типа блоков:

1) составной оператор;

2) определение функции.

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

Объекты, объявленные вне блоков, обычно называют глобальными объектами. С этой точки зрения все функции программы являются глобальными объектами. Время жизни функций – все время выполнения программы. Область видимости функций начинается с точки ее объявления (это определение самой функции или объявление ее прототипа) и заканчивается при завершении программы. Кроме функций на глобальном уровне можно определять и другие программные объекты – константы, переменные, типы данных и т.д. Их время жизни и область видимости также начинаются с точки объявления.

Переменные и другие программные объекты, определенные внутри блока называют локальными объектами. Временем жизни таких объектов обычно является блок, в котором эти объекты определены. Область видимости локальных объектов – промежуток между объявлением локального объекта и концом блока, в котором эти объекты определены. В функции все формальные параметры и другие объекты, которые определены внутри тела функции являются локальными. Почти все они создаются в памяти (в стеке) на время работы функции и уничтожаются при ее завершении.

Читайте также:  Подготовка виндовс не выключайте компьютер что делать

int I = 10; // Глобальная переменная

void F ( int a ) // Параметр а – локальная переменная

Время жизни и область видимости локальных переменных, определенных на уровне заголовка цикла for, – весь оператор for:

for ( int a = 0, b = 10; a ] [ ]

В языке C++ определены 4 основные класса памяти:

· auto

· register

· static

· extern

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

Void F ( int i )

int j = 20;

if ( i == 10 )

double Pi = 3.14;

В этой функции все переменные (i, j, Pi) являются локальными автоматическими объектами. Переменные i иj создаются в памяти в начале выполнения функции и уничтожаются при выходе из функции. Время жизни и область видимости этих переменных одинаковы и соответствуют всему телу функции. Переменная Pi создается в памяти, когда начинает выполняться соответствующий блок инструкции if, и уничтожаются при выходе из этого блока.

Спецификатор register используется довольно часто для увеличения быстродействия программы. Этот спецификатор “просит” компилятор поместить соответствующую переменную в памяти так, чтобы доступ к ней осуществлялся как можно быстрее. Регистровые переменные размещаются либо в регистрах процессора, либо в кэш-памяти компьютера. Поскольку объем такой памяти ограничен, компилятор эту “просьбу” может и не выполнить. В этом случае регистровые переменные создаются как обычные автоматические переменные. Пример определения регистровой переменной:

register double d = 1.23;

С помощью спецификатора класса памяти extern осуществляется обращение к глобальным переменным, определенным либо в других файлах проекта, либо далее в этом же файле. Например:

База данных и СУБД. Локальные и удаленные базы данных.

В этой главе на примере базы данных "Ежедневник" показан процесс создания приложения работы с локальной базой данных.

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

С точки зрения программиста, база данных – это набор файлов, в которых находится информация. Разрабатывая базу данных для пользователя, программист создает программу, которая обеспечивает работу с файлами данных. В состав C++ Builder включены компоненты, используя которые программист может создавать программы работы с файлами данных в форматах dBase, Microsoft Access, Infomix и Oracle и др.

Читайте также:  Мультиварка редмонд смарт хоум

База данных – это набор, совокупность файлов, в которых находится информация. Программная система (приложение), обеспечивающая работу с базой данных (файлами данных) называется системой управления базой данных (СУБД). Следует обратить внимание, что вместо термина СУБД часто используется термин база данных, при этом файлы данных и СУБД рассматриваются как единое целое.

Локальные и удаленные базы данных

В зависимости от расположения программы, которая использует данные, и самих данных, а также от способа разделения данных между несколькими пользователями различают локальные и удаленные базы данных.

Данные локальной базы данных (файлы данных) локализованы, т. е. находятся на одном устройстве, в качестве которого может выступать диск компьютера или сетевой диск (диск другого компьютера, работающего в сети). Локальные базы данных не обеспечивают одновременный доступ к информации нескольким пользователям. Для обеспечения разделения данных (доступа к данным) между несколькими пользователями (программами, работающими на одном или разных компьютерах) в локальных базах данных используется метод, получивший название "блокировка файлов".

Суть этого метода заключается в том, что пока данные используются одним пользователем, другой пользователь не может работать с этими данными, т. е. данные для него закрыты, заблокированы. Несомненным достоинством локальной базы данных является высокая скорость доступа к информации. Приложения работы с локальной базой данных и саму базу данных часто размещают на одном компьютере. dBase, Paradox, FoxPro и Microsoft Access – это локальные базы данных.

Удаленные базы данных строятся по технологии "клиент-сервер". Программа работы с удаленной базой данных состоит из двух частей: клиентской и серверной. Клиентская часть программы работает на компьютере пользователя и обеспечивает взаимодействие с серверной программой посредством запросов, передаваемых на удаленный компьютер (сервер), обеспечивая тем самым доступ к данным. Серверная часть программы, работающая на удаленном компьютере, принимает запросы, выполняет их и пересылает данные клиентской программе. Программа, работающая на удаленном сервере, проектируется так, чтобы обеспечить одновременный доступ к базе данных нескольким пользователям. При этом для обеспечения доступа к данным вместо механизма блокировки файлов используют механизм транзакций.

Транзакция – это последовательность действий, которая должна быть обязательно выполнена над данными перед тем, как они будут переданы. В случае обнаружения ошибки во время выполнения любого из действий вся последовательность действий, составляющая транзакцию, повторяется снова. Таким образом, механизм транзакций обеспечивает защиту от аппаратных сбоев. Он также обеспечивает возможность многопользовательского доступа к данным. Oracle, Infomix, Microsoft SQL Server и InterBase – это удаленные базы данных.

Ссылка на основную публикацию
Что такое shell core
Офис built-to-suit Shell & core – состояние офисного помещения «под отделку», в данном помещении присутствуют только бетонная стяжка, стеклопакеты, подведенные...
Что лучше ps3 или ps4
PlayStation 4 выпуска 2013 года позиционируется на рынке как флагман нового поколения игровых приставок от Sony. Анонс новинки дал понять,...
Что лучше амд или нвидиа для игр
Война видеокарт никогда не прекращается. Если вы спросите консольного игрока, он вам подробно расскажет о бесконечном соперничестве между Xbox One...
Что такое sptd в daemon tools
Подлинный файл является одним из компонентов программного обеспечения SPTD Device Driver, разработанного Duplex Secure. Sptd.sys - это драйвер в Windows....
Adblock detector