copymemory()数组赋值
在各网站的文章里面,见复制数据的方法中,有move的,有system.copy的,而要实际应用中,这两种方法,并不是很完美,会遇到一些问题,比如copy在记录里面的复制时,编译都过不去,而CopyMemory的功能,就相当强大.
要注意如果不是byte时,长度可能需要使用sizeof来参与计算
Buff,BuffCmdCrc16:array of Byte
SetLength(BuffCmdCrc16, 10);
一、复制10个byte
CopyMemory(@BuffCmdCrc16[0],@Buff[0],10);
从第11个 byte位追加,取数从第5个起,取8个byte 的长度。
CopyMemory(@BuffCmdCrc16[10],@Buff[5],8);
定义在Winapi.Windows中:
procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: NativeUInt);
begin
Move(Source^, Destination^, Length);
end;
从定义看,也是调用了move,但是直接用move,可没这么顺心顺手
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步