在上一学期的系统编程课上,我们必须用C语言实现一个基本的客户端/服务器。在初始化结构时,比如sock_addr_in
,或者char buffer(我们用来在客户端和服务器之间来回发送数据),教授告诉我们只使用bzero
而不是memset
来初始化它们。他从来没有解释过为什么,我很好奇这是不是有一个合理的原因?
我在这里看到:http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdown,bzero
的效率更高,因为它只会清零内存,所以它不需要像memset
那样做任何额外的检查。尽管如此,这仍然不一定是绝对不使用memset
进行内存清零的理由。
bzero
被认为是被弃用的,而且不是标准的C函数。根据手册,由于这个原因,memset
比bzero
更受欢迎。那么,为什么你还想在memset
上使用bzero
呢?仅仅是为了提高效率,还是其他原因?同样,与bzero
相比,memset
有哪些优点使其成为较新程序事实上的首选选项?
https://stackoverflow.com/questions/17096990
复制相似问题