Le langage C, bien qu'ancien, est toujours d'actualité, notamment dans le domaine du logiciel embarqué. Il est réputé pour sa puissance et son efficacité. Il dispose d'une syntaxe qui allie une certaine proximité avec la machine (mais en restant portable) et un bon niveau d'abstraction.
Son apparente simplicité cache certaines difficultés d'utilisation qu'il est bon de mettre en évidence afin d'éviter des erreurs de réalisation.
Petit florilège :
L'Echelle de Goret.
Le but de ce site est de fournir au programmeur les moyens de réaliser du code correct, fiable et maintenable. Il s'adresse autant aux débutants qu'aux programmeurs C avertis.
En plus de l'étude de certains phénomènes dangereux du langage, et des moyens de les éviter, ce site fourni des conseils sur l'organisation du développement d'un projet en C, ainsi qu'une bibliothèque de fonctions écrites en C standard (ISO/IEC 9899:1990 ou C90) permettant de réaliser des opérations courantes de façon fiable et simple.
Ressources
Internet
Pour compléter les éléments apportés par ce site, je ne saurais trop recommander la consultation des deux FAQ C dont celle de Steve Summit en
anglais et celle de Guillaume Rumeau en
français. Ce sont des mines d'informations qu'il convient de lire et de relire régulièrement.
Je recommande aussi la fréquentation des deux forums USENET qui sont à l'origine de ces FAQ, soit
news:comp.lang.c et
news:fr.comp.lang.c ne serait-ce qu'en lecture simple. Il est bien sûr conseillé d'y poser des questions si celles-ci n'ont pas trouvé de réponses dans leurs FAQ respectives. Il existe aussi un
CLC-Wiki qui centralise petit à petit les informations pertinentes de c.l.c.
Je signale aussi l'existence du forum privé
Développez qui contient aussi beaucoup d'informations de bases sur le C et les autres langages de programmation.
Enfin, vous trouverez une référence détaillée et très lisible (en anglais) des fonctions de la bibliothèque standard
C90 ou
C99
J'ajoute un document de référence non officiel mais très détaillé qui explique la norme (ISO) avec précision (en anglais) :
Le rationale.
Enfin, pour les spécialistes à la recherche de structures de données plus ou moins complexes, je signale l'existence de la
Kazlib. (en anglais).
Autre référence de haut niveau, le
site de Chris Torek (un éminent intervenant de comp.lang.c. Toutes ses réponses sont bonnes à lire).
Je signale aussi l'existence du
Site du Zéro qui, malgré sa présentation jeune et ludique, bénéficie d'un contenu rédactionnel correct[1]. A recommander pour les moins de 18 ans... (et même les autres, après tout). Les cours sont prolongés par un
forum C tout à fait convenable.
Littérature
La référence incontournable : Le livre de Brian Kernighan et Dennis Ritchie, les fondateurs : Le
langage C à compléter de l'
errata
Les apprentis gourous trouveront dans ce livre
C-Unleashed. (en anglais) des techniques de développement C très pointues et très portables. Ecrit par de nombreux intervenants de haut niveau de comp.lang.c. "Le livre de la communauté C".
[1] bien que je ne sois pas d'accord avec certains choix de l'auteur, comme l'usage de scanf() ou des long.