相关疑难解决方法(0)

memcpy或memmove可以返回与dest不同的指针吗?

该函数memmove定义如下:

void *memmove(void *dest, const void *src, size_t n);
Run Code Online (Sandbox Code Playgroud)

在Linux手册页中,它说:

返回值
memmove()函数返回指向dest的指针.

为什么函数只是定义为void memmove(…)总是返回其中一个输入参数?返回值可以与dest?不同?

或者返回值是否总是dest如此,只是能够以某种创造性的方式组合功能?

c return-value function-call memmove

38
推荐指数
3
解决办法
2584
查看次数

strcpy()返回值

标准C库中的许多函数,尤其是用于字符串操作的函数,最显着的是strcpy(),共享以下原型:

char *the_function (char *destination, ...)
Run Code Online (Sandbox Code Playgroud)

这些函数的返回值实际上与提供的相同destination.你为什么要浪费多余的回报价值呢?这样的函数无效或返回有用的东西更有意义.

我唯一的猜测是,为什么将函数调用嵌套在另一个表达式中更容易,更方便,例如:

printf("%s\n", strcpy(dst, src));
Run Code Online (Sandbox Code Playgroud)

还有其他合理的理由来证明这个成语吗?

c function strcpy

26
推荐指数
3
解决办法
2万
查看次数

标签 统计

c ×2

function ×1

function-call ×1

memmove ×1

return-value ×1

strcpy ×1