| Termin | Definicja |
|---|---|
| Zmienna lokalna | Zmienna lokalna istnieje wyłącznie w obrębie bieżącej partii poleceń lub procedury, w której została zadeklarowana. Zakres istnienia zmiennej lokalnejZmienna lokalna jest nazwą przypisaną do wartości przechowywanej tylko w określonym zakresie wykonania programu. Zakres ten może obejmować pojedynczą procedurę, funkcję, metodę, blok instrukcji albo bieżącą partię poleceń, zależnie od używanego języka programowania lub środowiska. Poza miejscem deklaracji identyfikator zmiennej nie jest dostępny w zwykły sposób, ponieważ kod znajdujący się w innym zakresie nie ma do niego bezpośredniego odwołania. Przykładowo funkcja może utworzyć lokalną zmienną przechowującą wynik obliczenia, licznik pętli albo tymczasowy tekst. Każde wywołanie funkcji otrzymuje własny kontekst wykonania, dlatego zmienna lokalna utworzona podczas jednego wywołania nie jest automatycznie tą samą zmienną co zmienna o identycznej nazwie utworzona podczas kolejnego wywołania. Zasada ta pomaga oddzielić dane tymczasowe od stanu wspólnego dla całego programu. Deklaracja, inicjalizacja i czas życiaDeklaracja zmiennej lokalnej informuje kompilator, interpreter albo środowisko wykonawcze, że w danym zakresie będzie używana nazwana wartość. W niektórych językach deklaracja może występować osobno od przypisania pierwszej wartości, natomiast w innych zmienna jest tworzona dopiero w chwili wykonania instrukcji przypisania. Próba odczytania zmiennej przed jej prawidłową inicjalizacją może zakończyć się błędem, zwrócić wartość domyślną albo zostać wykryta już podczas kompilacji. Dokładne zachowanie zależy od języka. Czas życia zmiennej lokalnej jest związany z wykonaniem zakresu, w którym została utworzona. W typowej funkcji pamięć potrzebna na prostą zmienną może zostać zarezerwowana przy wejściu do funkcji, a zwolniona przy opuszczeniu jej zakresu. Jeżeli zmienna przechowuje odwołanie do obiektu, sam obiekt może istnieć dłużej, gdy inne części programu nadal posiadają do niego odwołania. Nie należy więc utożsamiać czasu życia nazwy lokalnej z czasem życia każdego obiektu wskazywanego przez tę nazwę. Zasięg leksykalny i przesłanianie nazwW językach stosujących zasięg leksykalny dostępność zmiennej wynika z położenia deklaracji w kodzie źródłowym. Zagnieżdżony blok może korzystać ze zmiennej zadeklarowanej w otaczającym bloku, o ile nie istnieje inna deklaracja o tej samej nazwie. Gdy wewnętrzny zakres definiuje własną zmienną o identycznym identyfikatorze, dochodzi do przesłonięcia nazwy. W takim przypadku odwołanie zapisane wewnątrz tego zakresu wskazuje zwykle na zmienną wewnętrzną, a nie na zmienną zewnętrzną. Przesłanianie może być poprawnym elementem projektu, ale często utrudnia analizę kodu. Szczególnej uwagi wymagają pętle, instrukcje warunkowe oraz funkcje zawierające wiele zagnieżdżonych bloków. Narzędzia programistyczne mogą ostrzegać o powtórnym użyciu nazwy, nieużywanej zmiennej lub odwołaniu do wartości, która nie została ustawiona na każdej możliwej ścieżce wykonania. Czytelne nazwy i ograniczanie zakresu do niezbędnego minimum zmniejszają ryzyko pomyłki. Rola zmiennych lokalnych w działaniu programuZmienne lokalne służą przede wszystkim do przechowywania danych pośrednich: parametrów przetwarzania, wyników pojedynczych operacji, indeksów, flag sterujących oraz wartości pomocniczych. Dzięki ograniczonemu zasięgowi funkcja może wykonywać obliczenia bez przypadkowej zmiany zmiennych używanych przez inne części programu. Ułatwia to testowanie, ponieważ wejście funkcji, jej wynik i lokalne operacje można analizować w odseparowanym kontekście. Błędy związane ze zmiennymi lokalnymi obejmują między innymi literówkę w nazwie, nieprawidłową inicjalizację, użycie zmiennej poza zakresem i niezamierzone przesłonięcie innej nazwy. Podczas diagnostyki laptopa lub komputera PC problem z aplikacją może być widoczny jako komunikat o niezdefiniowanej zmiennej, wyjątek wykonania, nieprawidłowy wynik albo nagłe zamknięcie programu. Sprawdza się wtedy między innymi miejsce deklaracji, ścieżki warunkowe, kolejność przypisań oraz zgodność typu przechowywanej wartości z operacją, która ma zostać wykonana. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i podzespołów, a w ramach analizy oprogramowania można ustalić, czy objaw wynika z kodu aplikacji, konfiguracji systemu czy problemu sprzętowego. |