memmove is defined like this:
void *memmove(void *dest, const void *src, size_t n);
In the Linux manual page, it says:
The memmove() function returns a pointer to dest.
Why isn't the function just defined as
void memmove(…) when it always returns one of the input parameters? Can the return value be different from
Or is the return value really always
dest and it is just done to be able to compose the function in some creative ways?