gpt4 book ai didi

c - 如何从不是字节对齐的源复制内存(移位)

转载 作者:太空狗 更新时间:2023-10-29 14:58:12 30 4
gpt4 key购买 nike

我能想到一些令人讨厌的低效方法来完成这项任务,但我想知道最好的方法是什么。

例如,我想复制一个字节中从第 3 位开始的 10 个字节,并像往常一样复制到一个指针。

有没有比一次复制一个移位字节更好的方法?

谢谢

最佳答案

一般的做法是尽可能高效地读取源缓冲区,并在写入目标缓冲区的途中根据需要移动它。

您不必执行字节操作,您始终可以通过在开头执行最多三个字节并类似地处理结尾来使源读取 long 对齐大部分操作因为您不应该尝试读取超过规定的源缓冲区长度。

根据读取的值,您可以根据需要进行移位以获得所需的位对齐并组装完成的字节以写入目标。您还可以对写入进行相同的优化,以达到尽可能宽的对齐字大小。

如果您在源代码中挖掘广泛使用可变宽度标记(zlib、MPEG、TIFF 和 JPEG 都跃然于脑海)的压缩工具或库,您可能会找到处理输入或输出缓冲区作为比特流,需要考虑一些实现思路。

关于c - 如何从不是字节对齐的源复制内存(移位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3738744/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com