Wyrażenie stałe – wyrażenie zapisane w kodzie źródłowym programu, którego wartość może zostać wyznaczona przez translator już na etapie kompilacji.
W kodzie źródłowym często umieszczane są konkretne wartości, znane na etapie kodowania. Wartości te mogą zostać zapisane za pomocą literałów reprezentujących w danym typie konkretną wartość. W większości implementacji możliwe jest również zapisanie takich wartości w postaci wyrażeń stałych.
Wyrażenia stałe w odróżnieniu od literałów nie stanowią zapisu wprost wartości, lecz jest to zapis wartości za pomocą literałów, w tym zdefiniowanych wcześniej stałych, symboli i makr preprocesora, operatorów oraz wybranych funkcji standardowych. Określona wartość, która ma zostać wpisana do kodu źródłowego, wymaga w tym przypadku wykonania obliczeń. W większości systemów programowania wyrażania takie są obliczane w trakcie przetwarzania kodu źródłowego przez translator, do kodu wynikowego wstawiana jest wyznaczona wartość wyrażenia stałego (a nie kod obliczeniowy zawarty w wyrażeniu).
Stosowanie wyrażeń stałych: uwalnia programistę od pewnych obliczeń przy kodowaniu, stanowi samodokumentowanie się kodu źródłowego, ułatwiające jego późniejsze zrozumienie, ułatwia pisanie złożonych projektów przez grupy programistów (np. poprzez stosowanie wcześniej definiowanych przez innych programistów stałych lub symboli preprocesora bez konieczności znajomości ich wartości, a więc pewne parametryzowanie kompilacji).
Typ wartości wyrażenia stałego wynika najczęściej z kontekstu lub zastosowanych literałów i operatorów. Gdy język dopuszcza takie wyrażenia, to mogą występować wszędzie tam, gdzie można stosować literały reprezentujące konkretne wartości.
Wyrażenia stałe często stosowane są przy deklarowaniu stałych i inicjalizacji zmiennych (zwane także wyrażeniami inicjującymi).
język programowania możliwość stosowania przykłady Turbo PascalAndrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika Mikrokomputerów, , literały operatory zadeklarowane wcześniej stałe wybrane funkcje standardowe modułu System const A=15+Ord('A'); const S='A'+'B'+Chr(10)+#$D; const Z=['0'..'9']+['A'..'Z']; Turbo CJan Bielecki, Turbo C z grafiką na IBM PC, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, Seria: Mikrokomputery, literały operatory stałe preprocesora zmienne zainicjowane funkcje int v=5+STALA_PREPR; double x=3-sin(0.2); Clipper 5.0 literały operatory zadeklarowane wcześniej stałe stałe preprocesora LOCAL x:=12+15/STALA_PREPR PL/IJan Bielecki, Rozszerzony PL/I i JCL w systemie OS/RIAD, Państwowe Wydawnictwo Naukowe, Warszawa 1986, Seria: Biblioteka Informatyki, literały operatory stałe preprocesora zmienne zainicjowane procedury DCL N INITAL(CALL IN(2)); DCL (X DEC, Y BIN) INITIAL(5+6-N); Modula-2Niklaus Wirth, Modula-2, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, literały operatory zadeklarowane wcześniej stałe CONST N=16-1; CONST M=N*N-1;
Zobacz też stała literał
Przypisy
Kategoria:Konstrukcje programistyczne