Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki

W języku C, aby zadeklarować stałą, należy użyć

A. static
B. const
C. #CONST
D. #INCLUDE

Pytanie z egzaminu CKE, czerwiec 2020 (arkusz EE.09-SG-20.06).

W języku C słowo kluczowe const służy do zadeklarowania obiektu, którego wartości nie powinno się później zmieniać w kodzie programu. Przykład praktyczny: const int MAX_LICZBA_PROB = 3; albo const double PI = 3.14159;. Dzięki temu kompilator może wykryć próbę przypadkowego nadpisania takiej wartości, np. MAX_LICZBA_PROB = 5; będzie błędem. To jest bardzo przydatne, bo w większym programie łatwo coś zmienić przez nieuwagę. Moim zdaniem const to jedna z tych małych rzeczy w C, które mocno poprawiają czytelność kodu. Widać od razu, że dana wartość ma pełnić rolę ustalonego parametru, a nie zwykłej zmiennej roboczej. W dobrych praktykach często używa się const także przy parametrach funkcji, np. void wypisz(const char *tekst), żeby zaznaczyć, że funkcja nie będzie modyfikować przekazanego napisu. Warto tylko pamiętać, że w C const oznacza obiekt tylko do odczytu, a nie zawsze stałą czasu kompilacji w każdym kontekście. Do stałych preprocesora używa się raczej #define, ale do deklarowania stałej zmiennej w normalnym kodzie właściwe jest const.
W tym pytaniu łatwo pomylić kilka mechanizmów języka C, bo ich nazwy brzmią dość technicznie i wszystkie mogą pojawiać się blisko deklaracji. static nie służy jednak do tworzenia stałej wartości. To słowo kluczowe zmienia czas życia zmiennej albo jej widoczność. Na przykład zmienna lokalna static zachowuje swoją wartość między wywołaniami funkcji, a zmienna globalna static może być widoczna tylko w danym pliku źródłowym. Nadal jednak można ją modyfikować, jeśli nie dodamy const. Czyli static int licznik; to licznik z pamięcią, ale nie stała. Z mojego doświadczenia to częsta pułapka, bo ktoś kojarzy static z czymś ustalonym, a w C chodzi bardziej o przechowywanie i zasięg, nie o niezmienność. Zapis #CONST też nie jest poprawną dyrektywą preprocesora w standardowym C. Preprocesor zna między innymi #define, #include, #if, #ifdef, ale nie #CONST. Jeżeli chcemy zdefiniować symbol przed kompilacją, można napisać na przykład #define ROZMIAR 10, choć obecnie często lepiej użyć const, enum albo odpowiednio dobranego typu, zależnie od sytuacji. #INCLUDE również nie deklaruje stałej. Poprawna dyrektywa ma postać #include i służy do dołączania plików nagłówkowych, np. #include <stdio.h>. Dodatkowo w C dyrektywy preprocesora i słowa kluczowe są rozróżniane pod względem wielkości liter, więc #INCLUDE nie jest tym samym co #include. Najważniejsza zasada jest taka: const mówi kompilatorowi, że dany obiekt ma być traktowany jako tylko do odczytu, a pozostałe podane opcje dotyczą innych mechanizmów albo w ogóle nie są poprawną składnią.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.