Le Guide et la Liste Définitifs du Livre C


Les réponses à cette question sont un effort communautaire. Modifiez les réponses existantes pour améliorer ce post. Il n'accepte pas actuellement de nouvelles réponses ou interactions.

Cette question tente de collecter une liste gérée par la communauté de qualité livres sur le langage de programmationc , destinés à différents niveaux de compétence.

C est un langage de programmation complexe qui est difficile à prendre en main en lisant des tutoriels en ligne. Un ouvrage complet est souvent la meilleure façon d'apprendre la langue, et trouver un bon livre est la première étape. Il est important d'éviter les livres mal écrits, et plus important encore, les livres qui contiennent de graves erreurs techniques.

Veuillez suggérer des modifications à la réponse acceptée pour ajouter des livres de qualité, avec un niveau de compétence approximatif et un court texte/description sur chaque livre. (Notez que la question est verrouillée, donc aucune nouvelle réponse ne sera acceptée. Une seule réponse est maintenue avec la liste )

N'hésitez pas à débattre des choix de livres, de la qualité, des titres, des résumés, des niveaux de compétence et de tout ce que vous voyez qui est faux. Les livres jugés satisfaisants par la communauté C ici resteront sur la liste; le reste sera régulièrement retiré.

Pour les livres qui ont des critiques par l'Association des utilisateurs C et C++ (ACCU), un lien vers ces critiques doit être ajouté avec le livre.

Voir aussi:


Cette question a été discutée sur Meta dans le cadre de la vérification des questions supprimées 2018.
Le consensus était de le maintenir non supprimé et activement maintenu.

 400
Author: lillq, 2009-02-18

1 answers

Avertissement!

Ceci est une liste de livres aléatoires de qualité diverse. De l'avis de certaines personnes (avec raison), il n'est plus une liste de livres recommandés. Certains des livres énumérés contiennent des déclarations manifestement incorrectes ou enseignent des pratiques erronées/nuisibles. Les personnes qui connaissent de tels livres peuvent modifier cette réponse pour aider à l'améliorer. Voir La liste des livres C s'est détraquée. Quoi faire avec elle?, et aussi Question supprimée audit 2018.

Référence (Tous niveaux)


Débutant

Intermédiaire

  • Extreme C: Repoussez les limites de ce que C et vous pouvez faire - Kamran Amini (2019). Ce livre s'appuie sur vos connaissances existantes en C pour vous aider à devenir un programmeur C plus expert. Vous obtenez des informations sur la conception, les fonctions et les structures des algorithmes et comprenez à la fois le multi-threading et le multi-traitement dans un environnement POSIX.

Expert


Uncategorized

  • C Pièges et pièges par A. Koenig (1989). Très bien, mais le style C pré-dates standard C, ce qui le rend moins recommandable ces jours-ci.

    Certains ont plaidé pour la suppression des "pièges et pièges" de cette liste parce qu'elle a incité certaines personnes à commettre des erreurs; d'autres continuent de plaider pour son inclusion. Peut-être devrait-il être considéré comme un livre "expert" car il nécessite une connaissance modérément approfondie de C pour comprendre ce qui a changé depuis sa publication.

  • MISRA-C - industrie norme publiée et maintenue par la Motor Industry Software Reliability Association. Couvre C89 et C99.

    Bien que ce ne soit pas un livre en tant que tel, de nombreux programmeurs recommandent de le lire et de l'implémenter autant que possible. MISRA-C a été conçu à l'origine comme des lignes directrices pour les applications critiques pour la sécurité en particulier, mais il s'applique à tout domaine d'application où un code C stable et sans bogues est souhaité (qui ne veut pas moins de bogues?). MISRA-C devient la norme de facto en l'ensemble de l'industrie embarquée et devient de plus en plus populaire, même dans d'autres branches de la programmation. Il existe (au moins) trois publications de la norme (1998, 2004 et la version actuelle de 2012). Il existe également un document MISRA Compliance Guidelines de 2016 et MISRA C:2012 Amendment 1-Additional Security Guidelines for MISRA C: 2012 (publié en avril 2016).

    Notez que certaines des restrictions dans les règles MISRA ne sont pas appropriées à tous les contextes. Pour par exemple, la directive 4.12 stipule "L'allocation de mémoire dynamique ne doit pas être utilisée". Ceci est approprié dans les systèmes embarqués pour lesquels les règles MISRA sont conçues; ce n'est pas approprié partout. (Les compilateurs, par exemple, utilisent généralement l'allocation de mémoire dynamique pour des choses comme les tables de symboles, et se passer d'allocation de mémoire dynamique serait difficile, sinon absurde.)

  • Archivés des listes de ACCU-revue des livres sur Débutant C (116 titres) à partir de 2007 et Avancées C (76 titres) à partir de 2008. La plupart d'entre eux ne semblent plus être sur le site principal, et vous ne pouvez pas parcourir cela par sujet de toute façon.


Avertissements

Il existe une liste de livres et de tutoriels sur lesquels il faut faire attention au Wiki ISO 9899 , qui n'est pas lui-même formellement associé à l'ISO ou à la norme C, mais contient des informations sur la norme C (bien qu'il salue la publication de l'ISO 9899:2011 et ne mentionne pas la ISO 9899: 2018).

Méfiez-vous des livres écrits parHerbert Schildt . En particulier, vous devriez rester à l'écart de C: La Référence complète (4e édition, 2000), connue dans certains milieux sous le nom de C: Le Non-sens complet.

Aussi ne pas utiliser le livre Laissez-nous C (16il s'agit de la première édition de la série. Beaucoup de gens le considèrent comme un livre obsolète qui enseigne Turbo C et a beaucoup de matériel obsolète, trompeur et incorrect. Par exemple, page 137 discute de la sortie attendue de printf("%d %d %d\n", a, ++a, a++)et ne la catégorise pas comme comportement indéfini comme il se doit. Il promeut également constamment des pratiques de codage non portables et boguées, telles que l'utilisation gets, %[\n]s dans scanf, stocker la valeur de retour de getchar dans une variable de type char ou utiliser fflush sur stdin.

Apprendre C à la Dure (2015) par Zed Shaw. Un livre avec des critiques mitigées. Une critique de ce livre par Tim Hentenaar:

Pour résumer mon point de vue, qui sont présentés ci-dessous, l "auteur présente le matériel d" une manière grandement simplifiée et trompeuse, l "ensemble du corpus est un désordre groupé, et certaines des opinions et analyses qu" il offre sont tout simplement fausses. J'ai essayé de voir ce livre à travers les yeux d'un novice, mais malheureusement, je suis biaisé par des années d'expérience dans l'écriture de code en C. Il est évident pour moi que soit l'auteur a une compréhension erronée de C, soit il simplifie délibérément au point où il est en fait induire le lecteur en erreur (intentionnellement ou autrement).

"Apprendre C à la dure" n'est pas un livre que je pourrais recommander à quelqu'un qui apprend à programmer et à apprendre C. Si vous êtes déjà un programmeur compétent dans une autre langue connexe, alors il représente une exposition intéressante et inhabituelle sur C, bien que j'aie des réserves sur certaines parties du livre. Jean-Pierre Leffler


Obsolète


D'autres contributeurs, pas nécessairement crédités dans l'historique des révisions, incluent:
Il s'agit d'un jeu de rôle.]}, Ben Jackson, Bulles, griffes, - 1999-1999-1999-1999-1999-1999]}, Dana, Robinson, , Daniel Holden, desbest, Dervin Thunk, dwc , iI Hou , Garen , [395]} haziz , Johan Bezem, Jonathan Leffler, Joshua Partogi , Lucas , Lundin, Matt K. , mossplix , Matthieu M., midor , [415]}Nietzche-jou , Norman Ramsey, r3st0r3, ridthyself , Robert S. Barnes, Steve Sommet De, Anneau de Tim , Tony Bai, VMAtm

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