Poke
 
将值赋值给内存中的位置。

语法

Declare Sub Poke ( ByVal address As Any Ptr, ByRef value As UByte )
Declare Sub Poke ( datatype , ByVal address As Any Ptr, ByRef value As datatype )

用法

Poke( [ datatype , ] address , value )

参数

datatype
指定地址的数据类型。
address
内存中要赋值的位置。
value
要赋值的值。

说明

Poke将值赋值给内存中的某个位置。相当于

*cast(ubyte ptr, address ) = value
or
*cast(datatype ptr, address ) = value

datatype 是用户定义的类型时,Poke使用类型的操作符 Let赋值value .

例子

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

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

会产生输出:

420

与QB差别

  • 在QB中只支持字节形式。
  • DEF SEG 不再需要,因为FreeBASIC中的地址空间为32位。

参考