Peek
 
Получает значение произвольного типа по адресу в памяти

Синтаксис

Declare Function Peek ( ByVal address As Any Ptr ) As UByte
Declare Function Peek ( datatype, ByVal address As Any Ptr ) ByRef As datatype


Использование

Peek( [ datatype, ] address )

Параметры

address
Адрес в памяти, чтобы получить значение из него.
datatype
Тип значения, которое нажно получить. Если не указано, то по умолчанию используется тип переданного указателя; или UByte, если адрес Integer или Any Ptr.

Описание

Эта процедура возвращает ссылку на значение в памяти и эквивалентна

*cast(ubyte ptr, address)
или
*cast(datatype ptr, address)

Пример

Dim i As Integer, p As Integer Ptr
p = @i

Poke Integer, p, 420
Print Peek(Integer, p)

Вывод:

420

Отличия от QB

  • Peek не поддерживала параметр datatype в QB, и могла возвращать только отдельный байт.
  • Peek возвращает ссылку в FB, поэтому может быть использована для получения содержимого адреса памяти, как с помощью Оператора * (Значение из).
  • DEF SEG больше не нужен, потому что адресное пространство является 32-разрядным в FreeBASIC.

См. также