La guida e l'elenco C Book definitivo
Questa domanda tenta di raccogliere un elenco mantenuto dalla comunità di qualità libri sul linguaggio di programmazione c , mirati a vari livelli di abilità.
C è un linguaggio di programmazione complesso che è difficile da imparare in movimento leggendo tutorial online. Un libro completo è spesso il modo migliore per imparare la lingua, e trovare un buon libro è il primo passo. È importante evitare libri scritti male e, ancora più importante, libri che contengono gravi errori tecnici.
Si prega di suggerire modifiche al risposta accettata per aggiungere libri di qualità, con un livello di abilità approssimativo e un breve blurb/descrizione su ogni libro. (Si noti che la domanda è bloccata, quindi non verranno accettate nuove risposte. Una singola risposta viene mantenuta con la lista )
Sentitevi liberi di discutere le scelte del libro, qualità, intestazioni, riassunti, livelli di abilità, e qualsiasi altra cosa si vede che è sbagliato. I libri che sono ritenuti soddisfacenti dalla comunità C qui si attaccheranno sulla lista; il resto sarà regolarmente rimuovere.
Per i libri che hanno recensioni da parte dell'Associazione degli utenti C e C++ (ACCU), un link a tali recensioni dovrebbe essere aggiunto insieme al libro.
Vedi anche:
- Altre risorse correlate a C nel c tag wiki
- Un elenco simile per c++: La guida definitiva del libro C++ e la lista
Questa domanda è stata discussa su Meta come parte dell'audit Deleted Questions 2018.
Il consenso era di mantenerlo non eliminato e mantenuto attivamente.
1 answers
Attenzione!
Questa è una lista di libri casuali di diversa qualità. Secondo alcune persone (con qualche giustificazione), non è più un elenco di libri consigliati. Alcuni dei libri elencati contengono affermazioni palesemente errate o insegnano pratiche sbagliate/dannose. Le persone che sono a conoscenza di tali libri possono modificare questa risposta per contribuire a migliorarla. Vedi La lista del libro C è andata in tilt. Cosa fare con esso?, e anche Cancellato verifica domanda 2018.
Riferimento (tutti i livelli)
-
Il linguaggio di programmazione C (2a edizione) - Brian W. Kernighan e Dennis M. Ritchie (1988). Ancora una buona, breve ma completa introduzione a C (C90, non C99 o versioni successive), scritta dall'inventore di C. Tuttavia, il linguaggio è cambiato e il buon stile C si è sviluppato negli ultimi 25 anni, e ci sono parti del libro che mostrano la sua età.
-
Nel 2002 è stato pubblicato il primo album in studio della cantante.
-
Il comp.lang.c FAQ - Steve Summit. Sito web con risposte a molte domande a proposito di C.
-
Varie versioni degli standard del linguaggio C possono essere trovate qui. Esiste una versione online dello standard draft C11 .
-
Il nuovo standard C - un riferimento annotato (PDF gratuito) - Derek M. Jones (2009). Il" nuovo standard " a cui si fa riferimento è il vecchio standard C99 piuttosto che C11.
Principiante
-
Programmazione C: Un approccio moderno (2a edizione) - KN King (2008). Un buon libro per imparare C.
-
Programmazione in C (4a edizione) - Stephen Kochan (2014). Una buona introduzione generale e tutorial.
-
C Primer Plus (5a edizione) - Stephen Prata (2004)
-
Un libro su C - Al Kelley / Ira Pohl (1998).
-
Il libro C (Online gratis) - Mike Banahan, Declan Brady, e Mark Doran (1991).
-
C: Come programmare (8a edizione) - Paul Deitel e Harvey M. Deitel (2015). Un sacco di buoni consigli e le migliori pratiche per i principianti. L'indice è molto buono e serve come riferimento decente (solo che non è completamente completo e molto superficiale).
-
Il nostro sito utilizza cookie tecnici e di terze parti. (2012).
-
A partire da C (5a edizione) - Ivor Horton (2013). Ottima spiegazione dei puntatori, usando molti programmi piccoli ma completi.
-
Sams Teach Yourself C in 21 giorni - Bradley L. Jones e Peter Aitken (2002). Roba introduttiva molto buona.
-
C In semplici passi (5a edizione) - Mike McGrath (2018). Si tratta di un buon libro per l'apprendimento e di riferimento C.
Intermedio
-
C Interfacce e implementazioni - David R. Hanson (1997). Fornisce informazioni su come definire un confine tra un'interfaccia e l'implementazione in C in modo generico e riutilizzabile. Dimostra anche questo principio applicandolo all'attuazione di meccanismi comuni e strutture dati in C, come elenchi, set, eccezioni, manipolazione di stringhe, allocatori di memoria e altro ancora. Fondamentalmente, Hanson ha preso tutto il codice che aveva scritto come parte della costruzione Icon e lcc e ha tirato fuori i pezzi migliori in una forma che altre persone potevano riutilizzare per i propri progetti. È un modello di buona programmazione C che utilizza tecniche di progettazione moderne (inclusa l'astrazione dei dati di Liskov), che mostra come organizzare un grande progetto C come un gruppo di utili biblioteca.
-
Il libro di puzzle C - Alan R. Feuer (1998)
-
La libreria C standard - P. J. Plauger (1992). Contiene il codice sorgente completo per un'implementazione della libreria standard C89, insieme a ampie discussioni sul design e sul motivo per cui il codice è stato progettato come mostrato.
-
21 ° secolo C: C Suggerimenti dalla Nuova Scuola - Ben Klemens (2012). Oltre al linguaggio C, il libro spiega gdb, valgrind, autotools e git. I commenti sullo stile si trovano nell'ultima parte (Capitolo 6 e oltre).
-
Algoritmi in C - Robert Sedgewick (1997). Ti dà una vera comprensione dell'implementazione degli algoritmi in C. Molto lucido e chiaro; probabilmente ti farà venir voglia di buttare via tutti gli altri libri di algoritmi e mantenere questo.
- I nostri servizi sono a vostra disposizione (1997).
-
Risoluzione di problemi e progettazione di programmi in C (6a edizione) - Jeri R. Hanly e Elliot B. Koffman (2009).
-
Strutture dati-Un approccio avanzato utilizzando C - Jeffrey Esakov e Tom Weiss (1989).
- Programmazione orientata agli oggetti con ANSI-C (PDF gratuito)-Axel - Tobias Schreiner (1993). Il codice diventa un po ' contorto. Se vuoi C++, usa C++. Usa solo C90, ovviamente.
- C estremo: Spingi i limiti di ciò che C e puoi fare - Kamran Amini (2019). Questo libro si basa sulla tua conoscenza C esistente per aiutarti a diventare un programmatore C più esperto. Lo farai ottieni informazioni dettagliate sulla progettazione, le funzioni e le strutture degli algoritmi e comprendi sia il multi-threading che il multi-processing in un ambiente POSIX.
Esperto
-
Expert C Programming: Deep C Secrets - Peter van der Linden (1994). Un sacco di informazioni interessanti e storie di guerra dal team Sun compiler, ma un po ' datato in luoghi.
-
Programmazione C avanzata per esempio - John W. Perry (1998).
-
Programmazione avanzata nell'ambiente UNIX - Richard W. Stevens e Stephen A. Rago (2013). Descrizione completa di come utilizzare le API Unix dal codice C, ma non tanto sulla meccanica della codifica C.
Senza categoria
-
Essential C (PDF gratuito) - Nick Parlante (2003). Si noti che questo descrive il linguaggio C90 in diversi punti ( ad esempio , nella discussione dei commenti
//
e il posizionamento di dichiarazioni variabili in punti arbitrari nel codice), quindi dovrebbe essere trattato con una certa cautela. -
C Programmazione FAQs: Frequently Asked Questions - Steve Summit (1995). Questo è il libro del sito web elencato in precedenza. Non copre C99 o gli standard successivi.
-
C in poche parole - Peter Prinz e Tony Crawford (2005). Ottimo libro se avete bisogno di un riferimento per C99.
-
Funzionale C - Pieter Hartel e Henk Muller (1997). Insegna pratiche moderne che sono inestimabili per la programmazione di basso livello, con concorrenza e modularità in mente.
-
La pratica della programmazione - Brian W. Kernighan e Rob Pike (1999). Un ottimo libro per accompagnare K & R. Usa anche C++ e Java.
-
C Trappole e insidie di A. Koenig (1989). Molto buono, ma lo stile C pre-date standard C, che lo rende meno raccomandabile in questi giorni.
Alcuni hanno sostenuto la rimozione di "Trappole e insidie" da questo elenco perché ha intrappolato alcune persone a commettere errori; altri continuano a sostenere la sua inclusione. Forse dovrebbe essere considerato un libro "esperto" perché richiede una conoscenza moderatamente estesa di C per capire cosa è cambiato da quando è stato pubblicato.
-
MISRA - C - industria standard pubblicato e mantenuto dalla Motor Industry Software Reliability Association. Copre C89 e C99.
Anche se questo non è un libro in quanto tale, molti programmatori raccomandano di leggere e implementare il più possibile. MISRA-C era originariamente inteso come linee guida per le applicazioni critiche per la sicurezza in particolare, ma si applica a qualsiasi area di applicazione in cui è desiderato un codice C stabile e privo di bug (chi non vuole meno bug?). MISRA-C sta diventando lo standard de facto in l'intero settore embedded e sta diventando sempre più popolare anche in altri rami di programmazione. Ci sono (almeno) tre pubblicazioni dello standard (1998, 2004 e la versione attuale dal 2012). Esiste anche un documento MISRA Compliance Guidelines del 2016 e MISRA C: 2012 Amendment 1-Linee guida di sicurezza aggiuntive per MISRA C: 2012 (pubblicato nell'aprile 2016).
Si noti che alcune delle restrizioni nelle regole MISRA non sono appropriate per ogni contesto. Per ad esempio, la direttiva 4.12 afferma "L'allocazione dinamica della memoria non deve essere utilizzata". Ciò è appropriato nei sistemi embedded per i quali sono state progettate le regole MISRA; non è appropriato ovunque. (I compilatori, ad esempio, usano generalmente l'allocazione dinamica della memoria per cose come le tabelle dei simboli, e fare a meno dell'allocazione dinamica della memoria sarebbe difficile, se non assurdo.)
-
Elenchi archiviati di libri recensiti da ACCU su Beginner's C (116 titoli) da 2007 e Advanced C (76 titoli) dal 2008. La maggior parte di questi non sembrano essere sul sito principale più, e non è possibile navigare che per argomento comunque.
Avvertenze
C'è un elenco di libri e tutorial di cui essere cauti al ISO 9899 Wiki, che non è di per sé formalmente associato con ISO o lo standard C, ma contiene informazioni sullo standard C (anche se saluta il rilascio di ISO 9899:2011 e non menziona il rilascio della norma ISO 9899: 2018).
Diffidare di libri scritti daHerbert Schildt . In particolare, dovresti stare lontano da C: The Complete Reference (4th Edition, 2000), noto in alcuni ambienti come C: The Complete Nonsense.
Inoltre non usare il libro Cerchiamo di C (16il film è stato prodotto da Yashwant Kanetkar nel 2017. Molte persone lo vedono come un libro obsoleto che insegna Turbo C e ha un sacco di materiale obsoleto, fuorviante e non corretto. Ad esempio, pagina 137 discute l'output previsto da printf("%d %d %d\n", a, ++a, a++)
e non lo classifica come comportamento indefinito come dovrebbe. Inoltre promuove costantemente pratiche di codifica non portabili e buggy, come l'utilizzo di gets
, %[\n]s
in scanf
, memorizzare il valore di ritorno di getchar
in una variabile di tipo char
o utilizzando fflush
su stdin
.
Impara C nel modo più duro (2015) di Zed Shaw. Un libro con recensioni contrastanti. Una critica di questo libro di Tim Hentenaar:
Per riassumere le mie opinioni, che sono disposti di seguito, l "autore presenta il materiale in modo notevolmente semplificato e fuorviante, l" intero corpus è un pasticcio in bundle, e alcune delle opinioni e le analisi che offre sono semplicemente sbagliato. Ho provato a vedere questo libro attraverso gli occhi di un novizio, ma sfortunatamente sono prevenuto da anni di esperienza nella scrittura di codice in C. È ovvio per me che l'autore ha una comprensione imperfetta di C, o sta deliberatamente semplificando al punto in cui è in realtà ingannando il lettore (intenzionalmente o altrimenti).
"Learn C The Hard Way" non è un libro che potrei raccomandare a qualcuno che sta imparando a programmare e ad imparare C. Se sei già un programmatore competente in qualche altro linguaggio correlato, allora rappresenta un'esposizione interessante e insolita su C, anche se ho delle riserve su parti del libro. Gionatan Leffler
Obsoleto
Altri contributori , non necessariamente accreditati nella cronologia delle revisioni, includono:
Benvenuti nel sito