Wyrażenie stałe

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Wyrażenie stałe jest to 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ść 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 takcie 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 Pascal[1]
  • 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;
Turbo C[2]
  • literały
  • operatory
  • stałe preprocesora
  • zmienne zainicjowane
  • funkcje
  • int v=5+STALA_PREPR;
  • double x=3-sin(0.2);
Clipper 5.0[3]
  • literały
  • operatory
  • zadeklarowane wcześniej stałe
  • stałe preprocesora
LOCAL x:=12+15/STALA_PREPR
PL/I[4]
  • 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-2[5]
  • literały
  • operatory
  • zadeklarowane wcześniej stałe
  • CONST N=16-1;
  • CONST M=N*N-1;

Zobacz też[edytuj | edytuj kod]

Przypisy