Многие функции из стандартной библиотеки C, особенно те, которые используются для обработки строк, и, в частности, strcpy(), используют следующий прототип:
char *the_function (char *destination, ...)
Возвращаемое значение этих функций на самом деле совпадает с возвращаемым значением destination
. Зачем вам тратить обратную стоимость на что-то избыточное? Это означает, что такая функция недействительна или возвращает что-то полезное.
Мое единственное предположение, почему это так, проще и удобнее вставить вызов функции в другое выражение, например:
printf("%s\n", strcpy(dst, src));
Есть ли другие разумные причины, чтобы оправдать эту идиому?