9
为什么要在memset上使用bzero?
在上学期的系统编程课程中,我们必须用C语言实现一个基本的客户端/服务器。在初始化结构(如sock_addr_in或char缓冲区(我们用来在客户端和服务器之间来回发送数据)时,指示我们仅使用bzero而不memset初始化它们。他从不解释原因,我很好奇这是否有正当理由吗? 我在这里看到:http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdown这bzero是更有效的,由于一个只能将要归零记忆的事实,所以也没有必须做memset可能做的任何其他检查。不过,这似乎仍不一定是绝对不memset用于清零内存的原因。 bzero被视为已弃用,而且不是标准C函数。根据该手册,由于这个原因,它memset是首选bzero。那么,为什么还要使用bzero完memset呢?仅仅是为了提高效率,还是更多?同样,memset超过的收益有什么好处bzero,使其成为较新程序的事实上的首选选择?