Loading AI tools
З Вікіпедії, вільної енциклопедії
У програмуванні, глобальна змінна (англ. global variable) — змінна, яка доступна в будь-якій області видимості, за винятком перекриття її іншою змінною з тим самим ім'ям. Механізм взаємодій з глобальними змінними називається механізмом глобального середовища. Парадигма глобального середовища протиставляється парадигмі місцевого середовища, згідно з якою всі змінні місцеві без використання спільної пам'яті (тобто всі взаємодії мають відбуватись через обмін повідомленнями).
Такі змінні вважаються поганим стилем саме через свою повсюдність: глобальна змінна може бути змінена будь-звідки, (за винятком розташування в захищеній пам'яті) і будь-яка частина пам'яті може залежати від неї. Таким чином глобальні змінні мають необмежений потенціал для створення взаємних залежностей, які створюють додаткову складність. Однак, зрідка, особливо в маленьких програмах, використання глобальних змінних може бути задовільним варіантом. Наприклад, задля уникнення постійної передачі часто використовних змінних через декілька функцій.
Глобальні змінні широко використовуються для передачі інформації між різними частинами коду, які не викликають одне одного, такими як конкурентні потоки або обробники сигналів. Без правильного блокування доступу, наприклад із допомогою семафора, код із використанням глобальних змінних не буде потоково безпечним, за винятком змінних тільки для читання розташованих захищеній ділянці пам'яті. Із збільшенням кількості змінних і, відповідно, блокувань збільшуються ймовірність взаємних блокувань.
Ця стаття не містить посилань на джерела. (березень 2017) |
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.