首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么没有一个标准的memswap函数

为什么没有一个标准的memswap函数
EN

Stack Overflow用户
提问于 2008-09-20 20:21:47
回答 4查看 8.4K关注 0票数 21

为什么没有c标准的内存交换函数,它可能看起来像这样:

代码语言:javascript
运行
复制
int memswap(void *ptr1, void *ptr2, size_t nbytes)?

我知道这很容易写,但我认为libc可以做一些很棒的技巧来加速它,就像一些实现为memcpy所做的那样。

EN

Stack Overflow用户

回答已采纳

发布于 2008-09-21 15:21:51

这不是例行公事需要的。

这些想法可能已经被考虑和丢弃了,因为很难提出一个通用的算法。别忘了,C语言是一门古老的语言,扩展必须是通用的。

可能的错误条件:-

当要交换的范围重叠时的空指针行为

  • length of zero

  • running of memory (最佳实现可能会为此分配内存)

  • null指针

最佳算法也可能取决于您正在做什么,因此可以由您直接编写更好的代码。

使用temp结构和assignment

  • small length可能更快地使用
  • 交换结构-可能更好地分配临时内存
  • long length-‘
  • section swap (其中section是一些最佳长度)
  • use of hardware copy
票数 6
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/109249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档