C99 rende il libro di K&R obsoleto? In caso affermativo, cosa consigliare al suo posto? [chiuso]


10

C99 è con noi da un po 'di tempo ormai. Presenta molte funzionalità che non sono presenti in K & Rs The C Programming Language . Nessuno di loro è particolarmente radicale. Tuttavia, anche piccole funzionalità come la capacità di mescolare dichiarazioni e codice cambiano il modo in cui si organizza il codice.

Mentre considero ancora il libro di K&R un riferimento inestimabile e, come il suo stile di scrittura, esiste un libro migliore che tenga conto dello standard C99? Comprerei una terza edizione di K&R in un baleno, ma non credo che succederà.


Non esiste davvero una versione inglese aggiornata C99? La traduzione ceca di questo libro è stata aggiornata per C99.
Šimon Tóth,

@Let_Me_Be La seconda edizione del libro K&R è stata pubblicata nel 1988. Non esiste una versione inglese più recente del libro. Quell'edizione copre ANSI C del 1988.
Thomas Owens

A causa di come è impostato il copyright / royalty, K&R non farebbe nulla scrivendo una terza edizione, motivo per cui non ne abbiamo ancora vista una.
BlackJack,

@ Black Jack è un vero peccato.
Justin Dearing l'

2
@Let_Me_Be - Quanto costa tradurre la traduzione ceca in inglese? :-) Penso che potrebbe essere l'unico modo per ottenere una versione C99 di K&R ...
voretaq7

Risposte:


8

Suggerirei comunque (la seconda edizione ANSIfied di) K&R per chiunque stia imparando C e voglia imparare C procedurale lineare (meno gli oggetti). Raddoppierei questa raccomandazione se intendono hackerare il codice del kernel * NIX un giorno poiché K&R ha veramente la "mentalità Unix" in un libro di programmazione.

Una volta che hanno capito le basi della sintassi C e hanno una ragionevole idea di stile, puoi introdurle ad altri riferimenti che parlano delle caratteristiche del C99 e spiegare che potrebbe cambiare il modo in cui organizzano ciò che scrivono, ma avranno ( in generale) buone abitudini fin dall'inizio con K&R (come fare dichiarazioni in anticipo) e saranno consapevoli del perché dietro fare qualcosa di contrario a quelle abitudini - penso che tu costruisca programmatori migliori in quel modo.


3
Fare una dichiarazione anticipata è in realtà una cattiva pratica ereditata dallo stile C89, le variabili dovrebbero essere dichiarate prima di essere usate per la prima volta. Vedi ad esempio la risposta a questa domanda
Étienne

2
@ Étienne Per "in primo piano" intendo "Le variabili dovrebbero essere tutte dichiarate il prima possibile nell'ambito in cui verranno utilizzate." che è sostanzialmente ciò che l'altra risposta sta sostenendo (o almeno mostrando nei suoi esempi molto semplificati). Approvo ciò che sta sostenendo quella risposta, ma vuoi assicurarti che i nuovi programmatori si rendano conto che "Oh drat, ho bisogno di un {contatore, variabile temporanea, ecc.} - Fammi dichiarare qui nel mezzo della mia logica". è una brutta cosa perché così facendo si rovina la leggibilità come sottolinea questa altra risposta (almeno lo fa IMHO)
voretaq7

2
Non c'è consenso, non sono rispettosamente d'accordo sul fatto che sia una cosa negativa e molte persone pensano che sia una buona cosa dichiararlo nel mezzo della logica, vedere anche programmers.stackexchange.com/questions/56585/…
Étienne,

@ Étienne Questa è la tua opinione e ne hai sicuramente il diritto, ma per essere sinceri non c'è modo di cambiare la MIA opinione: sono un vecchio hacker Unix irritabile e lo stile del codice C è molto religioso per me. Fortunatamente, nessuno di noi due dovrà mai leggere il codice dell'altro :-)
voretaq7,

Speriamo di no ;-)
Étienne il

8

Volete Harbison e Steele: " C: A Reference Manual "

Copre esplicitamente C99 e confronta / contrasti con altri sapori di C. L'ho trovato super utile.


1
Per essere onesti, H&S è esattamente quello che dice: un manuale di riferimento , e di per sé non è una grande risorsa di apprendimento come K&R.
John Bode,

Essere d'accordo! Penso che l'OP stia cercando un riferimento, comunque.
Angelo,

1

Consiglierei King's C Programming: A Modern Approach . È più spesso di K&R ma ancora non particolarmente imbottito e l'autore sottolinea ciò che è e non è nuovo in C99, nonché suggerimenti di stile e altre cose del genere.


1
$ 95 su Amazon, whoah!
Ernest Friedman-Hill,

In realtà, dovresti indicare nella tua risposta che intendi C Programming: A Modern Approach (Seconda Edizione). Inoltre ho qualcosa da chiedere, possiamo fare una breve chat?
Suraj Jain,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.