FB_MEMMOVE
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgFBMemmove
- 最后更新: 2021-10-11
将一块内存从一个位置复制到另一个位置
语法
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 即可(可能速度更快)。
为避免溢出,src 和 dst 所指向的有效内存区域大小必须至少等于要复制的字节数。
源指针和目标指针所指对象的底层类型与该函数无关。
该函数不检查源区域中的任何终止空字符,始终精确复制指定数量的字节。
结果为数据的二进制副本。
注意:要从/向 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_memcopyfb_memcopyclear
返回 目录