Wyjaśnienie zapisu typu zmiennej w Delphi

0

Mam taki zapis:
Var a : 1..100;

I nie mogę nigdzie wygrzebać co on oznacza.. Chodzi tutaj ustalenie że zmienna a może przyjmować wartości z 1..100, czy sugestia dla kompilatora żeby dobrał sobie odpowiedni typ, który uwzględnia podany przedział, czy jak?

1

Chodzi tutaj ustalenie że zmienna a może przyjmować wartości z 1..100

Tak; to się nazywa bodajże typ okrojony.

2

To się nazywało dokładnie typ okrojony (ang. Subrange Type), możesz o tym przeczytać np. tutaj, tutaj czy tutaj;

Chodzi tutaj ustalenie że zmienna a może przyjmować wartości z 1..100, czy sugestia dla kompilatora żeby dobrał sobie odpowiedni typ, który uwzględnia podany przedział, czy jak?

Jedno i drugie; Typ okrojony może przyjmować wartości z zadanego przedziału, a kompilator na podstawie ilości bajtów, jaką potrzeba do zapisania liczby ustala jego rozmiar;

Czyli np.:

TFoo = 0 .. 5;      //rozmiar: 1 bajt
TFoo = 0 .. 255;    //rozmiar: 1 bajt
TFoo = 0 .. 256;    //rozmiar: 2 bajty
TFoo = -128 .. 127; //rozmiar: 1 bajt

i tak dalej, i tak dalej; Jednak typ okrojony nie może zajmować więcej, niż typ Integer - w przeciwnym wypadku dostaniesz komunikat: [Error] XXX.dpr(X): Integer constant too large;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.