百科问答小站 logo
百科问答小站 font logo



既然有 memcpy_s 这种安全实现,为啥不禁用危险的 memcpy 或者更新 memcpy 源码? 第1页

  

user avatar   zhang-hao-72 网友的相关建议: 
      

可以找找源代码看看, 可能只是做了一些安全方面的判断, 然后就调用原先的memcpy了. 库的作者总是要尽量在安全性和效率上做些取舍吧...

ps. 以前有个类似的问题是关于memcpy和memmove的. memmove的实现至少有两种方式, 一种是先判断src和dest哪个在前, 如果dest在前并且有重叠, 就改成从后往前复制; 另一种是先完整复制到临时空间, 再复制到目标位置. 无论哪种, 效率肯定都不如memcpy高.

但是似乎确实也有些平台上memcpy就是memmove的别名.

另一个更经典的例子是gets, 虽然每本书上都写了"Never use gets()", 但是一直到c11才彻底把它去掉.




  

相关话题

  一个浮点数到底是怎么被转换为字符串输出?一个浮点数不精确,那么其输出的值是怎么被确定的呢? 
  大括号不换行的坏处有什么?为什么有人不换行? 
  编程学到可以「抢月饼」的程度,要选哪一门语言入门比较容易,需要多长时间? 
  学习编程照着别人的代码敲进去有效率吗? 
  计算机系应届生参加校招屡屡碰壁,请问像我这样条件的应届生算什么水平? 
  30 岁才开始学习编程靠谱吗? 
  剪切板、文件拖拽这些功能桌面环境是怎么实现的? 
  为什么那些会多国语言的人常常被赞赏,貌似没什么人因为精通各种编程语言而赞赏程序猿? 
  如何向一个零基础的人,解释学习计算机编程的正确顺序和原因? 
  如何看待没有学历的程序员? 

前一个讨论
放弃51单片机,直接学STM32的开发会有什么严重的问题么?
下一个讨论
个人或者小团队选择C语言还是c++?





© 2025-05-30 - tinynew.org. All Rights Reserved.
© 2025-05-30 - tinynew.org. 保留所有权利