我试图理解string.h函数。这是我自己的 strncpy() 实现
char * my_strncpy(char *dst, const char* src, int n)
{
char *orig = dst;
const char *hold = src;
int count = 0, remain = 0;
while(*(hold++))
count++;
if ( n > count )
{
remain = n - count;
n = count;
}
while(n--)
*dst++ = *src++;
while(remain--)
*dst++ = '\0';
return orig;
}
但是在这里查看 glibc 实现时,我想知道为什么它太大而复杂。
我使用“ time ”命令测试了执行时间。这两个功能运行几乎相同。
有人可以分享有关 glibc strncpy()的知识以及我在 my_strncpy() 中缺少的内容。