用于在C++中复制字符串的函数选择,重点关注性能

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)

如何确定最符合我要求的产品?

一般来说,如何找出两种不同功能(跨平台)的相对速度?

Luc*_*ore 6

他们不做同样的事情.如果您确定源缓冲区和目标缓冲区的大小相同,请继续memcpy.如果没有,strncpy绑定检查,这是要走的路.

但除非您进行数百万次操作,否则这不应成为您决定的因素.首先进行一些分析,看看你节省了多少时间(如果有的话)memcpy.