POKE
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgPoke
- 最后更新: 2017-08-15
向内存中的某个位置赋值。
语法
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
返回 目录