Skip to content

FB_MEMMOVE


将一块内存从一个位置复制到另一个位置

语法

declare function fb_memmove cdecl ( byref dst as any, byref src as any, byval bytes as uinteger ) as any ptr

用法

[result =] fb_memmove( dst, src, bytes )

参数

dst

目标内存的起始地址。

src

源内存的起始地址。

bytes

要复制的字节数。

返回值

返回目标内存的起始地址。

说明

fb_memmove 将指定数量的字节从内存位置 src 复制到内存位置 dst。每个起始地址均取自对变量或数组元素的引用。

复制过程如同使用了中间缓冲区,允许目标和源区域以任何方式重叠(更安全的方式,适用于任何平台)。当内存区域不重叠时,使用 fb_memcopy 即可(可能速度更快)。

为避免溢出,srcdst 所指向的有效内存区域大小必须至少等于要复制的字节数。

源指针和目标指针所指对象的底层类型与该函数无关。

该函数不检查源区域中的任何终止空字符,始终精确复制指定数量的字节。

结果为数据的二进制副本。

注意:要从/向 Pointer 引用的内存复制,必须先对其解引用(或在参数中在指针名前加 Byval 关键字),否则 fb_memmove 将尝试从/向指针变量本身所在的内存位置复制字节。

示例

vb
Dim As ZString * 33 z = "memmove can be very useful......"

Print z

fb_memmove(z[20], z[15], 11)

Print z

Sleep

输出:

memmove can be very useful......
memmove can be very very useful.

版本

  • 自 fbc 1.08.0 起

与 QB 的差异

  • FreeBASIC 中的行为和用法为新增内容。

另请参阅

  • fb_memcopy
  • fb_memcopyclear

返回 目录

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