为什么要在memset上使用bzero?

伪心理

在上学期的系统编程课程中,我们不得不用C语言实现一个基本的客户端/服务器。在初始化structsock_addr_in或char缓冲区(我们用来在客户端和服务器之间来回发送数据)时,指示我们仅使用bzero而不memset初始化它们。他从不解释原因,我很好奇这是否有正当理由吗?

我在这里看到:http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdownbzero是更有效的,由于一个只能将要归零记忆的事实,所以也没有必须做任何其他memset可能的检查不过,这似乎不一定仍然是绝对不memset用于清零内存的原因

bzero被视为已弃用,而且不是标准C函数。根据该手册,由于这个原因memset首选bzero那么,为什么还要使用bzeromemset呢?仅仅是为了提高效率,还是更多?同样,memset超过的收益有什么好处bzero,使其实际上成为较新程序的首选选择?

我看不出有任何理由,更喜欢bzeromemset

memset是标准C函数,而bzero从未使用过C标准函数。其基本原理可能是因为您可以使用memsetfunction实现完全相同的功能。

现在,关于效率,像这样的编译器gcc使用内置的实现,memset0检测到常量时它们会切换到特定的实现同为glibc当建宏被禁用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

为什么要在堆栈上使用Deque?

来自分类Dev

为什么要在pbuilder上使用sbuild?

来自分类Dev

为什么要在Dict上使用HashDict?

来自分类Dev

什么是gvfs,为什么要在我的系统上使用它?

来自分类Dev

为什么要在void上使用int函数?

来自分类Dev

为什么要在ThreadLocal上使用数据插槽?

来自分类Java

为什么要在Java / Spring上使用Scala / Lift?

来自分类Javascript

为什么要在object.freeze上使用immutablejs?

来自分类Dev

为什么要在 [Align] 对齐上使用 [Expanded] / [Flexible] flex?

来自分类Dev

sudoedit:为什么要在sudo vi上使用它?

来自分类Dev

为什么要在诸如Postgres的RDBMS上使用Parquet

来自分类Dev

为什么要在结构上使用&符号?

来自分类Python

为什么要在easy_install上使用pip?

来自分类Dev

为什么要在多个 if 语句上使用 elif 和 else?

来自分类Python

为什么要在Google App Engine上使用Django?

来自分类Dev

为什么要在冻结的对象上使用Object#clone?

来自分类Dev

为什么我要在StatefulWidget上使用StatelessWidget?

来自分类Dev

为什么要在Keras上使用纯TensorFlow?

来自分类Dev

为什么要在FreeBSD内核上使用Debian 6?

来自分类Dev

为什么我需要在资源上使用.close()

来自分类Dev

为什么在使用CUDA时使用memset?

来自分类Dev

为什么对memset使用'\ 0'而不是0?

来自分类Dev

为什么或为什么不在C ++中使用memset?

来自分类Dev

为什么要在主线程上订阅?

来自分类Dev

为什么要在小对象上同步?

来自分类Dev

什么时候以及为什么我们需要在bash上使用“ wait”命令?

来自分类Dev

当使用react-table时,为什么要在`ReactTable`上使用`useTable`

来自分类Dev

为什么要在AngularJS中使用$ onInit?

来自分类Dev

为什么要在golang中使用组合?

Related 相关文章

  1. 1

    为什么要在堆栈上使用Deque?

  2. 2

    为什么要在pbuilder上使用sbuild?

  3. 3

    为什么要在Dict上使用HashDict?

  4. 4

    什么是gvfs,为什么要在我的系统上使用它?

  5. 5

    为什么要在void上使用int函数?

  6. 6

    为什么要在ThreadLocal上使用数据插槽?

  7. 7

    为什么要在Java / Spring上使用Scala / Lift?

  8. 8

    为什么要在object.freeze上使用immutablejs?

  9. 9

    为什么要在 [Align] 对齐上使用 [Expanded] / [Flexible] flex?

  10. 10

    sudoedit:为什么要在sudo vi上使用它?

  11. 11

    为什么要在诸如Postgres的RDBMS上使用Parquet

  12. 12

    为什么要在结构上使用&符号?

  13. 13

    为什么要在easy_install上使用pip?

  14. 14

    为什么要在多个 if 语句上使用 elif 和 else?

  15. 15

    为什么要在Google App Engine上使用Django?

  16. 16

    为什么要在冻结的对象上使用Object#clone?

  17. 17

    为什么我要在StatefulWidget上使用StatelessWidget?

  18. 18

    为什么要在Keras上使用纯TensorFlow?

  19. 19

    为什么要在FreeBSD内核上使用Debian 6?

  20. 20

    为什么我需要在资源上使用.close()

  21. 21

    为什么在使用CUDA时使用memset?

  22. 22

    为什么对memset使用'\ 0'而不是0?

  23. 23

    为什么或为什么不在C ++中使用memset?

  24. 24

    为什么要在主线程上订阅?

  25. 25

    为什么要在小对象上同步?

  26. 26

    什么时候以及为什么我们需要在bash上使用“ wait”命令?

  27. 27

    当使用react-table时,为什么要在`ReactTable`上使用`useTable`

  28. 28

    为什么要在AngularJS中使用$ onInit?

  29. 29

    为什么要在golang中使用组合?

热门标签

归档