Функция memmove определяется следующим образом:
void *memmove(void *dest, const void *src, size_t n);
На странице руководства Linux говорится:
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция memmove() возвращает указатель на dest.
Почему не функция, определенная как void memmove(…), когда она всегда возвращает один из входных параметров? Может ли возвращаемое значение отличаться от dest?
Или это возвращаемое значение всегда всегда dest, и только что сделано, чтобы иметь возможность составлять функцию в некоторых творческих способах?