Автор Тема: 2.0.2.0-Спецификаторы переменных.  (Прочитано 2011 раз)

Оффлайн linker

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 71
  • Reputation: +1/-0
    • Просмотр профиля
2.0.2.0-Спецификаторы переменных.
« : 23 Декабря 2010, 17:37:41 »
Спецификаторы переменных.

Спецификаторы переменных предназначены для указания способа хранения переменных и назначения им связей.
В языке программирования PureBasic существуют четыре спецификатора хранения переменных, каждый из которых особым способом распределяет связи переменных в программе.
Существуют следующие типы связей: внешние, внутренние и локальные.

Global - Спецификатор внешнего типа, полный доступ из любой части программы.
Shared - Спецификатор внутреннего типа, доступ только в процедуре к локальной переменной основного потока.
Static - Спецификатор внутреннего типа, доступ только в конкретной процедуре с сохраняющая свои значения между вызовами процедуры.
Protected - Спецификатор локального типа, не имеют связей и доступна только в своём потоке.

Все спецификаторы подчиняются единым синтаксическим правилам.
Спецификаторы <переменная> [= <выражение>], <переменная> [= <выражение>], ...]


  • Shared string$
  • Global text$="string" ,a ,b=10
Применение спецификатора допускается только в процедурах, исключение составляет спецификатор Global, который можно использовать и в основном потоке программы.
Спецификаторы Shared и Global применяются только к переменным которые ни разу не были объявлены в процедуре или основном потоке.

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

  • Procedure String()
  • Debug string$ ;ранее присвоенное значение переменной из основного потока в процедуре недоступно
  • string$="changed string"
  • Debug string$ ;значение переменной изменится локально, только в процедуре
  • EndProcedure
  • string$="string"
  • String()
  • Debug string$ ;выполнение процедуры не повлияло на значение переменной основного потока

Все примеры написаны и проверены на языке высокого уровня PureBasic v4.31.
Дата составления 14 июля 2009 г.
©Copyright LOMASM - Информационные технологии. Все права защищены. Редактирование и публикация материала только с разрешения автора.
 1lomasm.ru
« Последнее редактирование: 23 Декабря 2010, 17:39:54 от linker »