当我阅读nginx代码时,我看到了这个函数:
这是一个简单的字符串复制函数。但为什么它会测试字符串的长度,如果长度大于等于17,则切换到memcpy函数呢?
#define ngx_cpymem(dst, src, n) (((u_char *) memcpy(dst, src, n)) + (n))
static ngx_inline u_char *
ngx_copy(u_char *dst, u_char *src, size_t len)
{
if (len < 17) {
while (len) {
*dst++ = *src++;
len--;
}
return dst;
} else {
return ngx_cpymem(dst, src, len);
}
}
这是一个简单的字符串复制函数。但为什么它会测试字符串的长度,如果长度大于等于17,则切换到memcpy函数呢?
c++
? - Lightness Races in Orbit