Also known as variable with global scope
variable in a computer program that is visible throughout the program, unless shadowed
Zmienna globalna – zmienna istniejąca przez cały czas życia programu i widziana z wielu miejsc w programie. Nadużywanie zmiennych globalnych może prowadzić do poważnych problemów, takich jak: * w przypadku programów wielowątkowych, zmienna taka może być modyfikowana przez dowolny wątek, co prowadzić może do nieokreśloności przy braku synchronizacji wątków. * jeśli funkcja używa zmiennej globalnej jako zmiennej pomocniczej, niemożliwe może być jej rekursywne wywołanie * zmienne globalne zaśmiecają przestrzeń nazw, w niektórych architekturach może to doprowadzić do przepełnienia stosu * na działanie danej części kodu może mieć wpływ kod zupełnie niezwiązany, o ile oba używają tej samej zmiennej globalnej i jeden z nich ją modyfikuje. * zmienne globalne mogą kolidować ze zmiennymi lokalnymi (te drugie przesłaniają zmienne globalne o ile posiadają identyczne nazwy). Do zalecanych rozwiązań należą: * używanie zmiennych statycznych o ograniczonym zakresie widoczności, takich jak zmienne static w C – zapobiega niepożądanym interakcjom * zamykanie zmiennych globalnych jako pól statycznych w klasach (najczęściej w klasach abstrakcyjnych) * zabezpieczanie dostępu do zmiennych globalnych blokadami. * przerobienie programu tak, żeby korzystał z mniejszej liczby zmiennych globalnych. * nazywanie zmiennych globalnych w sposób uniemożliwiający kolizję nazw (jest to obowiązkowe w Ruby), lub też deklarowanie w każdej funkcji z których zmiennych globalnych ona korzysta (PHP). W wielu sytuacjach nie da się uniknąć istnienia zmiennych globalnych – np. w programach języka C przeznaczonych na architektury nie posiadające możliwości dynamicznej alokacji pamięci. Stosowanie tam zmiennych globalnych jest jedynym możliwym sposobem na przekazanie większej liczby parametrów z jednej funkcji do drugiej. Niektóre języki programowania domyślnie po utworzeniu zmiennej przyjmują, że jest to zmienna o zakresie globalnym – czyli widoczna w dowolnym miejscu programu.
Abstract from DBpedia / Wikipedia · CC BY-SA
via Wikidata sitelinks · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).