Ciekawa deklaracja zmiennej w Delphi
23:16
Tue, 21 February 2012
Ciekaw byłem co powoduje deklaracja czegoś takiego w Delphi (jest dozwolona):
Tue, 21 February 2012
var
byte : word;
Przypomnę, że zarówno `byte` jak i `word` są nazwami typu zmiennej (tak jak `int` czy `string`). Typ `byte` to jeden bajt w pamięci w reprezentacji liczbowej (może przechować więc liczbę z zakresu 0 do 255), natomiast typ word to słowo 16-bitowe w reprezentacji liczbowej (przechowuje liczby z zakresu od 0 do 65535). Powyższy zapis oznacza więc (jeśliby czytać dosłownie) deklarację byte jako word.
Jak jest naprawdę (jak to interpretuje Delphi) można sprawdzić w następujący sposób:
procedure TForm1.Button1Click(Sender: TObject);
var
byte : word;
begin
byte := 65500;
ShowMessage(IntToStr(SizeOf(byte)));
ShowMessage(IntToStr(byte));
end;
jak widać byte staje się w tym wypadku zwykłą nazwą zmiennej typu word (zmienna przyjmuje wartość z zakresu przekraczającego zakres zmiennej byte).
Skomentuj
Aby zamieścić komentarz, proszę włączyć JavaScript - niestety roboty spamujące dają mi niezmiernie popalić.
Komentarze czytelników
Nie ma jeszcze żadnych komentarzy.