|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"absolute の使い方"
absoluteの使い方の例です。
ヘルプからはなかなかわかりにくいのでまとめてみました。
ver1のヘルプには載っているのですが、ver3などでは簡単に出てきません。
というか私には(説明は)見つけられませんでした。
要は同じメモリアドレス(先頭)を持った別の名前の変数を宣言することができ
る。ということ。構造体もOKなので切り出し方を変えることができるわけです。
レコードの場合PackedにしないとCPUの効率の良い配置にされることがあるので
注意して下さい。
以下の二つは全く連携していません。単に二つの例です。
//1対1の例
procedure TForm1.Button1Click(Sender: TObject);
var
a:byte;
b:char absolute a;
begin
a:=$41;
showmessage(b);
end;
//分割 部分 の例
procedure TForm1.Button1Click(Sender: TObject);
type
TAnother_a=Packed Record
x,y:array[0..3] of char;
end;
var
a:array[0..7] of char;
b:TAnother_a absolute a;
c:array [0..3] of char absolute a;
begin
a:='abcdefgh';
showmessage(b.x);
showmessage(b.y);
showmessage(c);
end;
98/11/21(土) 23:39 凛(MXB01744)
Original document by 凛 氏 ID:(MXB01744)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|