Skip to content

POKE


向内存中的某个位置赋值。

语法

vb
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

指定地址处的数据类型。如果省略,则假定为 ubyte

address

要赋值的内存位置。

value

要赋的值。

说明

Poke 向内存中的某个位置赋值,等同于

*cast(ubyte ptr, address) = value

*cast(datatype ptr, address) = value

datatype 为用户自定义类型时,Poke 使用该类型的 Operator Let 赋值。

注意:使用 Poke 时,-exx 编译器选项不会添加空指针检查代码(不对 address 的值进行空值测试)。

示例

start GeSHi

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

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

end GeSHi

将产生如下输出:

420

与QB的区别

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

参见

  • Peek

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系