pl.comp.lang.delphi
[Top] [All Lists]

Re: Absolute

Subject: Re: Absolute
From: Tygrys
Date: Mon, 14 Jul 2008 12:07:39 +0200
Newsgroups: pl.comp.lang.delphi


t0mek pisze:

Najważniejsze jest jednak w tym wszystkim pytanie - po co to wszystko?


Przerabiam pewną funkcję, która z tego korzysta, na metodę klasy. Samo absolute w tym wypadku służy do rzutowania tablicy 4 bajtów na LongInta (bo wcześniej do obliczeń wygodniejsze były bajty, a dalej już longinty są równie wygodne, a zawsze 4 razy szybsze).
Absolute jest dosyć eleganckie, ale jak się nie da to trudno.

IMHO jest raczej nieeleganckie, to taka kalka z C.

możesz sobie zrobić

type
  TIntRecord = record
    case Integer of
    0: (P: array[1..4] of Byte);
    1: (H: Longint);
  end;
  TCos = class
    Pole: TIntRecord;
    function Nic: Byte;
  end;

function TCos.Nic;
begin
  Pole.H := 1024;
  Result := Pole.P[1]
end;

W ten sposób definiujesz na początku, że Twoja dana jest raz taka, raz taka. Wszystko jest jasne, czytelne i eleganckie, struktura danych odpowiada rzeczywistości. Oczywiście w konkretnym przypadku nazwy zmiennych powinny być bardziej znaczące.

Alternatywnie możesz użyć pointerów jak sugerował Andrzej.

Tygrys

<Prev in Thread] Current Thread [Next in Thread>
Privacy Policy