我正在尝试引导strncat函数。我理解它的大部分内容并且可以用不同的方式编写,但我无法弄清楚如何编写更长版本的while (!(*dest++ = *src++))
。
char *_strncat(char *dest, char *src, int n)
{
char *ret = dest;
while (*dest) /* same as: while (dest[0] !- '\0') */
{
dest++; /* w. each loop, array is shifted left until it's empty */
}
while (n != 0)
{
if (!(*dest++ = *src++)) /* <=========here */
return ret;
n--;
}
*dest = 0;
return (ret);
}
有人可以展示并解释如何扩展该行,以便我可以指导它并了解它是如何工作的吗?谢谢!