15 Excellents livres gratuits pour apprendre le C

Le C est un langage de programmation de haut niveau polyvalent, procédural et portable, qui est l’un des langages les plus populaires et les plus influents. Il a été conçu pour être compilé à l’aide d’un compilateur simple, pour fournir un accès de bas niveau à la mémoire, pour fournir des constructions de langage qui correspondent efficacement aux instructions de la machine, et pour nécessiter un support d’exécution minimal. De nombreux langages de programmation ont une dette considérable envers C. Il est devenu quelque chose comme la lingua franca dans le monde de la programmation.

C est assez simple à comprendre. Il permet au programmeur d’organiser les programmes d’une manière claire, facile et logique. C’est un langage très flexible, pratique et compact combiné à une syntaxe facile à lire. Le code écrit en C s’exécute rapidement, avec un accès facile aux fonctions de bas niveau de l’ordinateur. Les directives du compilateur permettent de produire une seule version d’un programme compilé pour différentes architectures.

Le C est synonyme de liberté. Il est donc logique d’apprendre le C avec des livres qui incarnent également la liberté. Jetez un œil à mes choix et voyez si l’un d’entre eux vous séduit.

1. Le livre C de Mike Banahan, Declan Brady et Mark Doran

Le livre C

Le livre C

Le livre C est conçu pour les programmeurs qui ont déjà une certaine expérience de l’utilisation d’un langage de programmation procédurale moderne de haut niveau.

Vous devriez déjà comprendre les instructions, les variables, l’exécution conditionnelle, les tableaux, les procédures (ou sous-routines) et ainsi de suite.

Le livre se concentre sur les choses qui sont spéciales au C. En particulier, c’est la façon dont le C est utilisé qui est mise en avant. Le livre est à la fois informatif et agréable à lire.

Les chapitres comprennent :

  • Une introduction au C
  • Variables et arithmétique – introduit certains des fondamentaux du C, y compris les mots-clés et les identifiants, la déclaration des variables, les types réels, les types intégraux, les expressions et l’arithmétique, et les constantes
  • Contrôle de flux et expressions logiques – examine les différentes façons dont les déclarations de contrôle de flux peuvent être utilisées dans un programme C, y compris certaines déclarations qui n’ont pas été introduites jusqu’à présent. Contrôle du flux, expressions plus logiques, et opérateurs étranges
  • Fonctions – le type de fonctions, la récursion et le passage d’arguments, et la liaison
  • Tableaux et pointeurs – tableaux, pointeurs, manipulation des caractères, sizeof et allocation de stockage, pointeurs vers les fonctions, expressions impliquant des pointeurs, tableaux, l’opérateur & et les déclarations de fonctions
  • Types de données structurés – structures, unions, champs de bits, enums, qualificatifs et types dérivés, et initialisation
  • Le préprocesseur – comment fonctionne le préprocesseur, et directives
  • Zones spécialisées du C – déclarations, définitions et accessibilité, typedef, const et volatile, et points de séquence
  • Librairies – diagnostics, manipulation des caractères, localisation, limites, fonctions mathématiques, sauts non locaux, manipulation des signaux, nombres variables d’arguments, entrée et sortie, E/S formatées, E/S de caractères, E/S non formatées, fonctions d’accès aléatoire, utilitaires généraux, manipulation des chaînes de caractères, et la date et l’heure
  • Programmes complets en C – tout mettre ensemble, les arguments de main, l’interprétation des arguments du programme, un programme de correspondance de motifs, et un exemple plus ambitieux

Les auteurs donnent au lecteur la permission de faire ce qu’il veut avec le livre à condition qu’il y ait une reconnaissance des auteurs et de leur copyright. D’après ce que Mike Banahan a confirmé, le livre est effectivement sous licence Creative Commons.

Lire le livre

2. C Elements of Style par Steve Oualline

C Elements of Style

C Elements of Style

C Elements of Style est un guide utile qui couvre les principes d’un bon style de programmation, enseignant aux programmeurs C et C++ comment écrire du code qui peut être facilement lu, compris et maintenu par les autres. Que vous soyez un étudiant ou un programmeur professionnel, vous bénéficierez des nombreux conseils et techniques pour construire un code élégant et fiable.

Le livre tente de montrer aux lecteurs comment construire un bon style de programmation dans votre code. Puisque l’ordinateur ne lit que le code et que l’humain se concentre sur les commentaires, un bon style de programmation concerne les deux parties d’un programme.

Le but ultime est de construire un code bien conçu, bien écrit qui non seulement fait une utilisation efficace de l’ordinateur et mais contient aussi des commentaires soigneusement construits pour aider les humains à le comprendre. Cette condition facilitera le processus de débogage, de maintenance et d’amélioration, ce qui finira par améliorer la lisibilité, la portabilité, la fiabilité et la maintenabilité de votre code.

À l’intérieur, vous trouverez des directives sur l’écriture des commentaires, l’intitulé du programme, la détermination des noms de variables, le formatage des déclarations, les détails des déclarations, l’écriture du préprocesseur, l’organisation des répertoires et la création du makefile.

Ce livre est publié sous licence Creative Commons.

Lisez le livre

3. Une introduction à GCC par Brian Gough

Une introduction à GCC

Une introduction à GCC

Une introduction à GCC fournit une introduction aux compilateurs GNU C et C++, gcc et g++, qui font partie de la collection de compilateurs GNU (GCC).

Après avoir lu ce livre, vous saurez comment compiler un programme, utiliser les options de base du compilateur pour l’optimisation et le débogage.

Ce livre explique comment utiliser le compilateur lui-même. Basé sur des années d’observation des questions postées sur les listes de diffusion, il guide le lecteur directement vers les options importantes de GCC. Le livre n’enseigne pas le C.

Chapitres:

  • Introduction
  • Compilation d’un programme C – décrit comment compiler des programmes C en utilisant gcc. Les programmes peuvent être compilés à partir d’un fichier source unique ou de plusieurs fichiers sources, et peuvent utiliser des bibliothèques système et des fichiers d’en-tête
  • Options de compilation – décrit d’autres options de compilation couramment utilisées disponibles dans GCC. Ces options contrôlent des fonctionnalités telles que les chemins de recherche utilisés pour localiser les bibliothèques et les fichiers d’inclusion, l’utilisation d’avertissements et de diagnostics supplémentaires, les macros du préprocesseur et les dialectes du langage C
  • Utilisation du préprocesseur – décrit l’utilisation du préprocesseur GNU C cpp, qui fait partie du paquetage GCC. Le préprocesseur développe les macros dans les fichiers sources avant qu’ils ne soient compilés. Il est automatiquement appelé chaque fois que GCC traite un programme C ou C++
  • Compilation pour le débogage – fournit l’option -g debug pour stocker des informations de débogage supplémentaires dans les fichiers objets et les exécutables. Ces informations de débogage permettent de retracer les erreurs depuis une instruction machine spécifique jusqu’à la ligne correspondante dans le fichier source d’origine
  • Compilation avec optimisation – GCC est un compilateur optimisateur. Il fournit un large éventail d’options qui visent à augmenter la vitesse, ou à réduire la taille, des fichiers exécutables qu’il génère
  • Compilation d’un programme C++ – décrit comment utiliser GCC pour compiler des programmes écrits en C++, et les options de ligne de commande spécifiques à ce langage
  • Options spécifiques à la plateforme – décrit certaines des options disponibles pour les plateformes courantes : Options Intel et AMD x86, extensions x86, processeurs x86 64 bits, options DEC Alpha, options SPARC, options POWER/PowerPC, support multi-architecture et problèmes de virgule flottante
  • Dépannage – GCC fournit plusieurs options d’aide et de diagnostic pour aider à résoudre les problèmes liés au processus de compilation
  • Outils liés au compilateur – décrit un certain nombre d’outils qui sont utiles en combinaison avec GCC. Il s’agit notamment de l’archiveur GNU ar, pour créer des bibliothèques, et des programmes GNU de profilage et de test de couverture, gprof et gcov
  • Comment fonctionne le compilateur – décrit plus en détail comment GCC transforme les fichiers sources en fichier exécutable. La compilation est un processus en plusieurs étapes impliquant plusieurs outils, notamment le compilateur GNU lui-même (par le biais des frontaux gcc ou g++), l’assembleur GNU as, et le lieur GNU ld. L’ensemble complet des outils utilisés dans le processus de compilation est appelé toolchain
  • Examen des fichiers compilés – décrit plusieurs outils utiles pour examiner le contenu des fichiers exécutables et des fichiers objets
  • Messages d’erreur courants – décrit les messages d’erreur et d’avertissement les plus fréquents produits par gcc et g++. Chaque cas est accompagné d’une description des causes, d’un exemple et de suggestions de solutions possibles
  • Avoir de l’aide – si le lecteur rencontre un problème non couvert par cette introduction, il existe plusieurs manuels de référence qui décrivent plus en détail GCC et les sujets liés au langage

Ce livre est publié sous la licence de documentation libre GNU.

Lire le livre

Page suivante : Page 2 – Une introduction au C & Interface graphique et autres livres

Pages de cet article :
Page 1 – The C Book et plus de livres
Page 2 – An Introduction to C & GUI Programming et plus de livres
Page 3 – The GNU C Reference Manual et plus de livres
Page 4 – Essential C et plus de livres
Page 5 – Beej’s Guide to Network Programming et plus de livres

Tous les livres de cette série :

Free Programming Books
Java General-purpose, concurrent, class-based, object-oriented, high-level language
C General-purpose, procedural, portable, high-level language
Python General-purpose, structured, powerful language
C++ General-purpose, portable, free-form, multi-paradigm language
C# Combines the power and flexibility of C++ with the simplicity of Visual Basic
JavaScript Interpreted, prototype-based, scripting language
PHP PHP has been at the helm of the web for many years
HTML HyperText Markup Language
SQL Access and manipulate data held in a relational database management system
Ruby General purpose, scripting, structured, flexible, fully object-oriented language
Assembly As close to writing machine code without writing in pure hexadecimal
Swift Powerful and intuitive general-purpose programming language
Groovy Powerful, optionally typed and dynamic language
Go Compiled, statically typed programming language
Pascal Imperative and procedural language designed in the late 1960s
Perl High-level, general-purpose, interpreted, scripting, dynamic language
R De facto standard among statisticians and data analysts
COBOL Common Business-Oriented Language
Scala Modern, object-functional, multi-paradigm, Java-based language
Fortran The first high-level language, using the first compiler
Scratch Visual programming language designed for 8-16 year-old children
Lua Designed as an embeddable scripting language
Logo Dialect of Lisp that features interactivity, modularity, extensibility
Rust Ideal for systems, embedded, and other performance critical code
Lisp Unique features – excellent to study programming constructs
Ada ALGOL-like programming language, extended from Pascal and other languages
Haskell Standardized, general-purpose, polymorphically, statically typed language
Scheme A general-purpose, functional language descended from Lisp and Algol
Prolog A general purpose, declarative, logic programming language
Forth Imperative stack-based programming language
Clojure Dialect of the Lisp programming language
Julia High-level, high-performance language for technical computing
Awk Versatile language designed for pattern scanning and processing language
CoffeeScript Transcompiles into JavaScript inspired by Ruby, Python and Haskell
BASIC Beginner’s All-purpose Symbolic Instruction Code
Erlang General-purpose, concurrent, declarative, functional language
VimL Powerful scripting language of the Vim editor
OCaml The main implementation of the Caml language
ECMAScript Best known as the language embedded in web browsers
Bash Shell and command language; popular both as a shell and a scripting language
LaTeX Professional document preparation system and document markup language
TeX Markup and programming language – create professional quality typeset text
Arduino Inexpensive, flexible, open source microcontroller platform
TypeScript Strict syntactical superset of JavaScript adding optional static typing
Elixir Relatively new functional language running on the Erlang virtual machine
F# Uses functional, imperative, and object-oriented programming methods
Tcl Dynamic language based on concepts of Lisp, C, and Unix shells
Factor Dynamic stack-based programming language
Eiffel Object-oriented language designed by Bertrand Meyer
Agda Dependently typed functional language based on intuitionistic Type Theory
Icon Wide variety of features for processing and presenting symbolic data
XML Rules for defining semantic tags describing structure ad meaning
Vala Object-oriented language, syntactically similar to C#
Standard ML General-purpose functional language characterized as « Lisp with types »
D General-purpose systems programming language with a C-like syntax
Dart Client-optimized language for fast apps on multiple platforms
Markdown Plain text formatting syntax designed to be easy-to-read and easy-to-write
Kotlin More modern version of Java
Objective-C Object-oriented language that adds Smalltalk-style messaging to C
PureScript Small strongly, statically typed language compiling to JavaScript
ClojureScript Compiler for Clojure that targets JavaScript
VHDL Hardware description language used in electronic design automation

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.