c语言中strcpy跟mencpy哪个效率更高?

如题所述

mencpy为内存拷贝函数,直接指针操作内存块,不考虑存储的内容,效率高,但操作不当容易出错
strcpy为字符串拷贝函数,必须提供源字符串指针和目标字符串指针 速度上比不过mencpy,但更具针对性,拷贝字符串时建议用strcpy不要用mencpy
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-15
memcpy是内存拷贝,strcpy是字符串拷贝,当然是memcpy数度快。而且memcpy对数据没有限制,而strcpy要求拷贝的数据为字符,否则会出问题。
第2个回答  2013-10-15
1:区别
memcpy可以拷贝任何数据类型的对象,指定拷贝的数据长度。
strcpy只能拷贝字符串了,它遇到'\0'就结束拷贝
memcpy()充分利用了机器字长为32位的特性(32位系统,一次内存读/写可操作4字节的数据, 对于64位系统,则一次可操作8字节数据)。先按4字节一组(movsl)拷贝,共复制n/4次;对剩下的零头再逐字节拷贝。如果支持,memcpy()还可以使用了MMX/SSE指令增加一次操作中的字节数,进一步提高效率。
3:健壮性
拷贝的缓冲区如果是非字符串,尽量用memcpy(),其实字符串使用memcpy也是很好的选择。你说的溢出可能是使用strcpy的\0结束问题或者是用memcpy指定的拷贝长度不对造成的
相似回答