Molte delle funzioni della libreria standard C, in particolare quelli per la manipolazione di stringhe, e più in particolare strcpy(), condividere il seguente prototipo:strcpy() valore di ritorno
char *the_function (char *destination, ...)
Il valore di ritorno di questi le funzioni sono infatti le stesse del destination
fornito. Perché dovresti sprecare il valore di ritorno per qualcosa di ridondante? Ha più senso che una tale funzione sia nulla o restituisca qualcosa di utile.
mia unica ipotesi sul motivo per cui questo è è che è più facile e più conveniente per il nido la chiamata di funzione in un'altra espressione, ad esempio:
printf("%s\n", strcpy(dst, src));
Ci sono altri motivi ragionevoli per giustificare questo idioma?
La tua ipotesi è corretta, ma ovviamente tutti noi desideriamo queste funzioni restituito un puntatore al byte di terminazione null (che ridurrebbe un sacco di 'O (n)' operazioni a 'O (1)'). –
Un'osservazione molto corretta. Così tante persone non si rendono conto del costo di una strlen(). –