Un minimum de code




Pour n'importe quel programme, il faudra taper un minimum de code. Ce code ne fera rien de particulier, mais il est indispensable.

C'est ce "code minimum" que nous allons découvrir maintenant. Il devrait servir de base pour la plupart de vos programmes en langage C.


Demandez le code minimal à votre IDE


Selon l'IDE que vous avez choisi dans le chapitre précédent, la méthode pour créer un nouveau projet n'est pas la même. Reportez-vous à ce chapitre précédent si vous avez oublié comment faire.


Pour rappel, sous Code::Blocks (qui est l'IDE que je vais utiliser tout au long de ce cours), il faut aller dans le menu File / New / Project, puis choisir Console Application et sélectionner le langage C.


Code::blocks a donc généré le minimum de code en langage C dont on a besoin. Le voici :


Code : C - Sélectionner





Notez la présence d'une ligne vide à la fin de ce code. Chaque fichier en C devrait normalement se terminer par une ligne vide comme celle-là. Si vous ne le faites pas, ce n'est pas grave, mais le compilateur risque de vous afficher un avertissement (warning).



Notez que la ligne :





... peut aussi s'écrire :




Les 2 écritures sont possibles, mais la seconde (la compliquée) est la plus courante. J'aurai donc tendance à utiliser plutôt cette dernière dans les prochains chapitres.

En ce qui nous concerne, que l'on utilise l'une ou l'autre des écritures, ça ne changera rien pour nous.


Enregistrez le tout. Oui je sais, on n'a encore rien fait, mais enregistrez quand même, c'est une bonne habitude à prendre

Normalement, vous n'avez qu'un seul fichier source appelé main.c (le reste ce sont des fichiers de projet générés par votre IDE).


Analysons le code minimal



Commençons par les 2 premières lignes qui se ressemblent beaucoup :




Ce sont des lignes spéciales que l'on ne voit qu'en haut des fichiers source. Ces lignes sont facilement reconnaissables car elles commencent par un dièse #. Ces lignes spéciales, on les appelle directives de préprocesseur (un nom compliqué n'est-ce pas ? ). Ce sont des lignes qui seront lues par un programme appelé préprocesseur, un programme qui se lance au début de la compilation.


Il se passe plusieurs choses pendant une compilation. On les détaillera plus tard, pour le moment vous avez juste besoin de mettre ces lignes en haut de chacun de vos fichiers.


Le mot "include" en anglais signifie "inclure" en français. Ces lignes demandent d'inclure des fichiers au projet, c'est-à-dire d'ajouter des fichiers pour la compilation.


Il y a 2 lignes, donc 2 fichiers inclus. Ces fichiers s'appellent stdio.h et stdlib.h. Ce sont des fichiers qui existent déjà, des fichiers source tout prêts. On verra plus tard qu'on les appelle des bibliothèques (certains parlent aussi de librairies mais c'est un anglicisme). En gros, ces fichiers contiennent du code tout prêt qui permet d'afficher du texte à l'écran.


Sans ces fichiers, écrire du texte à l'écran aurait été mission impossible. L'ordinateur à la base ne sait rien faire, il faut tout lui dire. Vous voyez la galère dans laquelle on est


Bref, les 2 premières lignes incluent les bibliothèques qui vont nous permettre (entre autres) d'afficher du texte à l'écran assez "facilement"


Passons à la suite. La suite, c'est tout ça :





Ce que vous voyez là, c'est ce qu'on appelle une fonction. Un programme en langage C est constitué de fonctions, il ne contient quasiment que ça. Pour le moment, notre programme ne contient donc qu'une seule fonction.


Une fonction permet grosso modo de rassembler plusieurs commandes à l'ordinateur. Regroupées dans une fonction, les commandes permettent de faire quelque chose de précis. Par exemple, on peut créer une fonction "ouvrir_fichier" qui contiendra une suite d'instructions pour l'ordinateur lui expliquant comment ouvrir un fichier.

L'avantage, c'est qu'une fois la fonction écrite, vous n'aurez plus qu'à dire "ouvrir_fichier", et votre ordinateur saura comment faire sans que vous ayez à tout répéter !

(c'est beau la technologie !)


La première ligne contient le nom de la fonction, c'est le deuxième mot.

Oui notre fonction s'appelle donc main. C'est un nom de fonction particulier qui signifie "principal". Main est la fonction principale de votre programme, c'est toujours par la fonction main que le programme commence.


Une fonction a un début et une fin, délimités par des accolades { et }. Toute la fonction main se trouve donc entre ces accolades. Si vous avez bien suivi, notre fonction main contient 2 lignes :




Ces lignes à l'intérieur d'une fonction ont un nom. On les appelle instructions.

Chaque instruction est une commande à l'ordinateur. Chacune de ces lignes demande à l'ordinateur de faire quelque chose de précis.


Comme je vous l'ai dit un peu plus haut, en regroupant intelligemment (c'est le travail du programmeur) les instructions dans des fonctions, on crée si on veut des "bouts de programmes tout prêts". En utilisant les bonnes instructions, rien ne nous empêcherait donc de créer une fonction "ouvrir_fichier" comme je vous l'ai expliqué tout à l'heure, ou encore une fonction "avancer_personnage" dans un jeu vidéo par exemple


Un programme, ce n'est en fait au bout du compte rien d'autre qu'une série d'instructions : "fais ceci" "fais cela". Vous donnez des ordres à votre ordinateur et il les exécute (du moins si vous l'avez bien dressé   )


TRES IMPORTANT : toute instruction se termine O-BLI-GA-TOI-RE-MENT par un point-virgule " ; ". C'est d'ailleurs comme ça qu'on reconnaît ce qui est une instruction et ce qui n'en est pas une. Si vous oubliez de mettre un point-virgule à la fin d'une instruction, votre programme ne compilera pas !



La première ligne : printf("Hello world!\n"); demande à afficher le message "Hello world!" à l'écran. Quand votre programme arrivera à cette ligne, il va donc afficher un message à l'écran, puis passer à l'instruction suivante.


Passons à l'instruction suivante justement :

return 0;

Bon ben ça en gros, ça veut dire que c'est fini  (eh oui déjà ^^). Cette ligne indique qu'on arrive à la fin de notre fonction main et demande de renvoyer la valeur 0.


Hein ? Pourquoi mon programme renverrait-il le nombre 0 ?



En fait, chaque programme une fois terminé renvoie une valeur, par exemple pour dire que tout s'est bien passé (0 = tout s'est bien passé, n'importe quelle autre valeur = erreur ). La plupart du temps, cette valeur n'est pas vraiment utilisée, mais il faut quand même en renvoyer une.

Votre programme aurait marché sans le return 0, mais on va dire que c'est plus propre et plus sérieux de le mettre, donc on le met



Et voilà ! On vient de détailler un peu le fonctionnement du code minimal.





Le vocabulaire du programme minimal



Testons notre programme



Tester devrait aller vite. Tout ce que vous avez à faire c'est compiler le projet, puis l'exécuter (cliquez sur l'icône "Build & Run" sous Code::Blocks).

Si vous ne l'avez pas encore fait, on vous demandera d'enregistrer les fichiers. Faites-le.



Après un temps d'attente insupportable (la compilation ), votre premier programme va apparaître sous vos yeux totalement envahis de bonheur.


Votre premier programme !



Le programme affiche "Hello world!" (la première ligne).

Les lignes en dessous ont été générées par Code::Blocks et indiquent que le programme s'est bien exécuté et combien de temps s'est écoulé depuis le lancement.


On vous invite à appuyer sur n'importe quelle touche du clavier pour fermer la fenêtre. Votre programme s'arrête alors.


Oui je sais c'est nul, c'est moche, c'est tout ce que vous voulez

Mais bon, quand même ! C'est un premier programme, un instant dont vous vous souviendrez toute votre vie (ou pas).


Créé avec HelpNDoc Personal Edition: Générateur de documentations PDF gratuit