Le langage de pro­gram­ma­tion C est devenu un in­con­tour­nable depuis les années 1970. Pourquoi ? Parce que le langage C constitue la base des systèmes d’ex­ploi­ta­tion modernes et fait donc partie in­té­grante du quotidien des dé­ve­lop­peurs.

Ap­pli­ca­tions primaires du langage C

Ce n’est pas une surprise si le langage C est utilisé de nos jours dans toute une série de domaines d’ap­pli­ca­tion et s’il est devenu l’un des langages de pro­gram­ma­tion les plus répandus. Depuis son dé­ve­lop­pe­ment dans les années 1970, le langage de pro­gram­ma­tion im­pé­ra­tive a su séduire les dé­ve­lop­peurs de diverses ap­pli­ca­tions en raison de son ex­cep­tion­nelle rapidité. C est également un langage de choix pour tous ceux qui sou­hai­tent apprendre la pro­gram­ma­tion.

Le fait que les premiers domaines d’ap­pli­ca­tion du langage C aient touché la pro­gram­ma­tion système n’est pas non plus anodine. Le langage de pro­gram­ma­tion C est en effet très proche du langage machine : le langage C constitue une abs­trac­tion aussi exacte que possible du langage as­sem­bleur. La por­ta­bi­lité du langage in­for­ma­tique C, couplé au fait qu’il s’adresse di­rec­te­ment au matériel, font de lui un excellent choix, notamment pour la pro­gram­ma­tion de pilotes, voire de systèmes d’ex­ploi­ta­tion dans leur in­té­gra­lité.

Des com­pi­la­teurs, des bi­blio­thèques lo­gi­cielles d’autres langages ainsi que certains langages de pro­gram­ma­tion entiers de premier plan se basent eux aussi sur le langage C et tirent profit de sa rapidité et de la taille réduite de ses fichiers.

Langage C : avantages et in­con­vé­nients

Le langage de pro­gram­ma­tion C n’est pas populaire sans raison : il présente en effet un certain nombre de points positifs. Ainsi, la rapidité d’exécution des pro­grammes compilés en C est un facteur dé­ter­mi­nant qui justifie l’uti­li­sa­tion du langage. La grande por­ta­bi­lité du code C, à savoir le fait qu’il puisse être exécuté sous dif­fé­rents systèmes d’ex­ploi­ta­tion, est également un argument de poids en sa faveur. Enfin, le langage in­for­ma­tique C est un langage dit « de haut niveau » qui inclut les cons­truc­tions centrales que l’on retrouve aussi dans d’autres langages de pro­gram­ma­tion. Si vous maîtrisez le langage C, il est re­la­ti­ve­ment facile d’apprendre d’autres langages par la suite.

Pro­gram­mer en langage C peut sembler rebutant, en par­ti­cu­lier si vous faites vos premiers pas en pro­gram­ma­tion : la proximité stricte du langage avec le matériel a pour con­sé­quence qu’une simple erreur dans le programme peut ra­pi­de­ment perturber le contenu de la mémoire. De plus, apprendre le langage C demande plus de temps que d’autres langages, notamment parce qu’il ne s’agit pas d’un langage orienté objet.

Syntaxe

La syntaxe d’un langage de pro­gram­ma­tion est l’ensemble des règles à suivre pour écrire du code source exé­cu­table. Comme tout langage de pro­gram­ma­tion, le langage C présente quelques par­ti­cu­la­ri­tés syn­taxiques à maîtriser pour rédiger des lignes de code sans erreur :

  • Point-virgule : chaque ins­truc­tion en C se termine par un point-virgule. Peu importe qu’il s’agisse d’un appel de fonction ou d’une dé­cla­ra­tion de variable ;
  • Accolades : en langage C, les blocs d’ins­truc­tions sont iden­ti­fiés par une accolade ouvrante et une accolade fermante. Si l’in­den­ta­tion n’est pas né­ces­saire en C, con­trai­re­ment à d’autres langages de pro­gram­ma­tion, elle est re­com­man­dée car elle améliore nettement la li­si­bi­lité du code ;
  • In­té­gra­tion de bi­blio­thèques : l’in­té­gra­tion de bi­blio­thèques pour utiliser des fonctions déjà pré-im­plé­men­tées se fait au tout début du code C avec l’ins­truc­tion include :
#include <stdlib.h></stdlib.h>
  • Fonction main : le début et la fin d’un programme sont appelés fonction main. Chaque programme C doit contenir une fonction main :
#include <stdio.h></stdio.h>
// Début de la fonction main qui affiche à l’écran la chaîne de caractères « Hello world! »
int main(void) {
	printf(„Hello world!“);
}
  • Com­men­taires : les com­men­taires d’une seule ligne sont in­tro­duits en langage C par un double slash « // ». Pour les com­men­taires de plusieurs lignes, on utilise la notation « /* Contenu du com­men­taire */ ».

Quels autres langages de pro­gram­ma­tion se basent sur C ?

Le langage C constitue la base de toute une série d’autres langages de pro­gram­ma­tion, utilisés prin­ci­pa­le­ment pour le dé­ve­lop­pe­ment de systèmes et de logiciels. C++ et C# se basent di­rec­te­ment sur C. Con­trai­re­ment au langage de pro­gram­ma­tion impératif C, ces deux langages sont orientés objet et offrent par con­sé­quent un autre éventail de fonctions. Le langage de pro­gram­ma­tion orienté objet Java se base lui aussi sur C avec une syntaxe très similaire.

Dans le domaine du dé­ve­lop­pe­ment Web, il existe aussi des langages de pro­gram­ma­tion basés sur C. Un exemple connu est le langage de script PHP, qui forme la base de nom­breuses ap­pli­ca­tions Internet telles que WordPress. Le langage Ja­vaS­cript, essentiel pour les sites in­te­rac­tifs, se base lui aussi sur le C.

Dif­fé­rences entre C, C# et C++

La dé­no­mi­na­tion des langages de pro­gram­ma­tion C, C++ et C#, appelé parfois aussi C++++, peut prêter à confusion au premier abord en raison de leur si­mi­li­tude. Les dif­fé­rences entre ces dif­fé­rents langages sont cependant fla­grantes, car C++, C# et C suivent des pa­ra­digmes de pro­gram­ma­tion dif­fé­rents : alors que C est un langage de pro­gram­ma­tion im­pé­ra­tive, C# et C++ sont des langages de pro­gram­ma­tion orientés objet.

Mais quelle est la dif­fé­rence entre C# et C++ ? C’est là que les choses se com­pli­quent un peu… Le langage C constitue un sous-ensemble de C++, ce qui signifie que tous les pro­grammes C peuvent aussi être écrits en C++. Le C++ contient un certain nombre d’ex­ten­sions, comme l’orien­ta­tion objet, que le C n’avait pas encore.

Bien que C# soit lui aussi orienté objet, il est considéré comme plus ac­ces­sible que C++. Cela s’explique notamment par la gestion de la mémoire, plus facile en C#. De plus, C# a été conçu à l’origine pour Windows et non pour Linux et se base sur .NET Framework, qui nécessite pour ses uti­li­sa­teurs d’avoir installé .NET Runtime. Si le langage C# convient à tous les types de pro­grammes, il est surtout utilisé pour le dé­ve­lop­pe­ment des jeux, moins pour la pro­gram­ma­tion qui touche au matériel.

Apprendre le C : premiers pas

Vous avez décidé d’apprendre le C ? Alors vous aurez besoin d’un com­pi­la­teur pour convertir le code que vous aurez écrit en pro­grammes exé­cu­tables. Si Linux inclut déjà par défaut un com­pi­la­teur, il existe aussi des com­pi­la­teurs pour Windows avec lesquels il est possible de tra­vail­ler. MinGW est une solution populaire pour Windows et permet d’utiliser le com­pi­la­teur C Linux GCC sous Windows.

Il peut aussi être in­té­res­sant de té­lé­char­ger un en­vi­ron­ne­ment de dé­ve­lop­pe­ment intégré (IDE) pour la pro­gram­ma­tion en langage C, surtout si vous souhaitez écrire des pro­grammes plus complexes et plus longs. Un tel outil n’est certes pas obli­ga­toire mais il vous aide à réaliser des projets plus complexes grâce à la mise en évidence de la syntaxe et à un débogueur intégré. Le choix de l’IDE est une pure question de goût. CLion fonc­tionne sur tous les systèmes d’ex­ploi­ta­tion et offre de nom­breuses fonc­tion­na­li­tés utiles. Visual Studio pour Windows, ou encore Xcode pour MacOS, prennent aussi en charge la pro­gram­ma­tion en langage C.

Conseil

Vous souhaitez apprendre C++ ? Jetez un œil sur notre tutoriel !

Aller au menu principal