Sha*_*ala 2 c string performance copy
我正在编写一段代码,需要将值从一个char指针复制到另一个char指针.主要要求是代码应尽可能快地在尽可能多的平台上运行.
我看到我可以使用以下两个函数中的任何一个来执行此字符串复制:
char * strncpy ( char * destination, const char * source, size_t num );
Run Code Online (Sandbox Code Playgroud)
和
void * memcpy ( void * destination, const void * source, size_t num );
Run Code Online (Sandbox Code Playgroud)
如何确定最符合我要求的产品?
一般来说,如何找出两种不同功能(跨平台)的相对速度?
他们不做同样的事情.如果您确定源缓冲区和目标缓冲区的大小相同,请继续memcpy.如果没有,strncpy绑定检查,这是要走的路.
但除非您进行数百万次操作,否则这不应成为您决定的因素.首先进行一些分析,看看你节省了多少时间(如果有的话)memcpy.