gpt4 book ai didi

c - 为什么使用 bzero 而不是 memset?

转载 作者:太空狗 更新时间:2023-10-29 16:14:18 25 4
gpt4 key购买 nike

在上学期我上的系统编程课上,我们必须用 C 语言实现一个基本的客户端/服务器。数据在客户端和服务器之间来回传输)教授指示我们只使用 bzero 而不是 memset 来初始化它们。他从未解释过原因,我很好奇这是否有正当理由?

我在这里看到:http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdown bzero 效率更高,因为它只会将内存归零,因此它不必像 memset 那样做任何额外的检查。不过,这仍然不一定是绝对不使用 memset 清零内存的理由。

bzero 被认为已弃用,而且不是标准的 C 函数。根据手册,出于这个原因,memset 优于 bzero。那么,为什么您仍要使用 bzero 而不是 memset?只是为了提高效率,还是为了更多?同样,memset 相对于 bzero 有哪些优势使其成为新程序事实上的首选?

最佳答案

我看不出有什么理由比 memset 更喜欢 bzero

memset 是一个标准的 C 函数,而 bzero 从来就不是一个 C 标准函数。基本原理可能是因为您可以使用 memset 函数实现完全相同的功能。

现在关于效率,gcc 等编译器使用 memset 的内置实现,当检测到常量 0 时切换到特定的实现。当禁用内置函数时,glibc 也是如此。

关于c - 为什么使用 bzero 而不是 memset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096990/

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