Literał wyliczeniowy – literał reprezentujący w kodzie źródłowym konkretną wartość określonego typu wyliczeniowego. Literały tego rodzaju dostępne są w językach programowania, bądź ich konkretnych implementacjach, w których składni zdefiniowano możliwość posługiwania się wyliczeniowym typem danych.

Programista tworząc kod programu z użyciem typu wyliczeniowego musi zdefiniować taki typ, tj. określić listę wartości, jakie obejmuje definiowany typ wyliczeniowy. W językach programowania przyjęto, że wartości takich typów definiuje się za pomocą identyfikatorów. Z takim identyfikatorem skojarzona zostaje pewna wartość całkowita (dobrana według określonych przez autorów języka programowania reguł, ewentualnie – jeżeli język dopuszcza taką konstrukcję – jawnie przypisana w definicji wartości), która używana jest między innymi w wyrażeniach oraz jest przypisywana i przechowywana w zmiennych typu wyliczeniowego. Jednak wszelkie operacje z użyciem danego typu wyliczeniowego w kodzie źródłowym podczas programowania określane są nie za pomocą skojarzonych wartości liczbowych lecz za pomocą zdefiniowanych wartości wybranego typu wyliczeniowego, tj. za pomocą użytych w definicji typu identyfikatorów.

Taka implementacja typu wyliczeniowego implikuje w pewnych językach programowania przynależność typów wyliczeniowych do kategorii typów porządkowych, co z kolei pozwala na używanie tych typów danych w operacjach określania następnika i poprzednika dla aktualnej wartości (np. podprogramy standardowe Pred(x) i Succ(x) w Turbo Pascalu), co umożliwia między innymi stosowanie typów wyliczeniowych jako typów dla zmiennych sterujących przebiegiem w realizacji pętli, w tym także pętli iteracyjnych, oraz w innych konstrukcjach jak np. indeksowanie tablic, sterowanie polem znacznikowym w rekordach z wariantami, itd. W pewnych językach, jak np. w języku C, literały tego typu mogą być używane analogicznie jak stałe o wartościach typu całkowitoliczbowego.

Powyższy, uogólniony zarys realizacji literałów wyliczeniowych odnosi się do ich implementacji między innymi w takich językach programowania jak: C, C++, D, Boo, Turbo Pascal i w innych, których składnia umożliwia definiowanie typów wyliczeniowych.

+ Przykłady element C Turbo Pascal kod źródłowy:/* definicja typu wyliczeniowego oraz literałów wyliczeniowych */ typedef enum{pn=0,ws=90, pd=180,zd=270} e_kier; main() { e_kier a; ... switch(a) { case pn: ... case ws: ... case pd: ... default: ...

}{ definicja typu wyliczeniowego oraz literałów wyliczeniowych } type firmy=(elwro, elzab, kfap, unimor);

{ deklaracja zmiennej typu wyliczeniowego } var i:firmy;

begin ... { użycie wyliczenia do iteracji } for i:=elwro to kfap do begin {treść pętli } end; ... end. zdefiniowane literały – wartości – wyliczeniowe: pn, ws, pd, zd elwro, elzab, kfap, unimor użyte literały – wartości – wyliczeniowe: pn, ws, pd elwro, elzab, kfap

Zobacz też Jednostka leksykalna

Przypisy

Bibliografia

Kategoria:Konstrukcje programistyczne