メモリのアドレスで、任意の型の値を取得します。
構文:
用法:
Peek( [ datatype, ] address )
パラメタ:
address
値を取得するメモリのアドレス。
datatype
取得する値の型。省略すると、
ubyte になります。
記述:
この手続きは、メモリ・アドレスで指定されたメモリ内の値への参照を返します。これは次と同じ結果です:
*cast(ubyte ptr, address)
または
*cast(datatype ptr, address)
したがって、このキーワードは、
Poke と同様に、メモリ位置に値を割り当てるためにも使えます。
注: Peek を使う場合、
-exx コンパイラー・オプションは、ヌルポインター・チェック用のコードを追加しません(
address 値の無効テストなし)。
例:
Dim i As Integer, p As Integer Ptr
p = @i
Poke Integer, p, 420
Print Peek
(Integer, p)
Sleep
下のように出力されるでしょう:
QBからの違い:
-
Peek は、QB の datatype パラメタをサポートしません。個々のバイトを返すだけです。
-
Peek は、FB での参照を返すので、アドレスに関する記憶内容を設定するのに使用できます。演算子 * (Value of) と同じです。
-
DEF SEG は、必要ありません。アドレス空間が、FreeBASIC の 32ビット フラットだからです。
参照: