E 'K & R-C e qui è tutto il codice: http://v6shell.org/history/if.cPerché dovresti tornare (0 * ap ++)?
Guardate questa funzione:
char *nxtarg() {
if (ap>ac) return(0*ap++);
return(av[ap++]);
}
1.Question: Perché ritorno (0 * ap ++)? Ok, vuoi restituire 0 e aumentare l'AP di 1. Ma perché così? È più veloce di if (ap>ac) {ap++; return 0;}
?
2.Question: Il tipo di ritorno di nxtarg deve essere char *, perché è possibile restituire 0, un intero?
Si prega di dividere la domanda in due. Dato che c'è già una risposta al primo, suggerirei di ritirare il secondo. –
(Perché hai uno stile di codifica orrendo?) Seriamente, non farlo. –
Il codice che hai deciso di guardare per qualche motivo è un pessimo esempio di pratica C moderna, anche se è di interesse storico. Potresti fare una domanda per ciascuna funzione in quel file e non imparare nulla di utile nel processo. O potresti trovare un codice migliore da leggere. Vorrei raccomandare il codice sorgente di musl: http://www.musl-libc.org –