La guida e l'elenco C Book definitivo


Le risposte di questa domanda sono uno sforzo della comunità . Modifica le risposte esistenti per migliorare questo post. Attualmente non accetta nuove risposte o interazioni.

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:


Questa domanda è stata discussa su Meta come parte dell'audit Deleted Questions 2018.
Il consenso era di mantenerlo non eliminato e mantenuto attivamente.

 400
Author: lillq, 2009-02-18

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)


Principiante

Intermedio

  • I nostri servizi sono a vostra disposizione (1997).
  • 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


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 ]}, Ben Jackson , Bolle , artigli , coledot , Dana Robinson, Daniel Holden , desbest , Dervin Thunk , dwc , Erc Hou, Garen , haziz , Johan Bezem , Jonathan Leffler , Joshua Partogi , Lucas , Lundin , Matt K., mossplix , Matthieu M. , midor , Nietzche-jou, Norman Ramsey , r3st0r3 , ridthyself, Robert S. Barnes, Steve Summit , Tim Anello , Tony Bai, VMAtm

 512
Author: Jonathan Leffler, 2020-12-15 07:13:51