Глобальная переменная

Материал из Википедии — свободной энциклопедии

Глобальная переменная в программировании — переменная, областью видимости которой является вся программа, если только она не перекрыта[англ.]. Механизмы взаимодействия с глобальными переменными называют механизмами доступа к глобальному окружению или состоянию (англ. global environment, global state). Глобальные переменные могут использоваться для взаимодействия между процедурами и функциями как альтернатива передачи аргументов и возвращения значений[1].

Использование глобальных переменных имеет недостатки: глобальная переменная может быть изменена в любой точке программы (если она не находится в

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

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

потокобезопасным, за исключением переменных, доступных только для чтения в защищённой области памяти. С увеличением количества переменных и, соответственно, блокировок увеличивается вероятность взаимных блокировок
.

Пример на Си:

int a; /* Объявление глобальной целочисленной переменной «а» */
float b = 6; /* Объявление глобальной переменной с плавающей запятой «b» и присваивание ей значения «6» */

int main(void)
{
    a = 12; /* Присваивание переменной «а» значения «12» */
    return a+b;
}

Примечания

  1. Керниган и Ритчи Язык программирования Си — С. 44, 87.
  2. William Wulf and Mary Shaw, «Global Variable Considered harmful», ACM SIGPLAN Notices, volume 8, issue 2, 1973 February, С. 28-34.

Ссылки