Premiers pas

Après avoir installé les outils nécessaires, vous pouvez dès à présent créer un premier programme. Nous allons utiliser l’exemple du fameux hello, world.

L’exemple incontournable

Pour commencez, créez un fichier nommé hello.c à l’aide de gedit ou tout autre éditeur de texte.

Voici le contenu du fichier hello.c:

1
2
3
4
5
6
#include <stdio.h>

int main(void) {
	puts("hello, world!");
	return 0;
}

Copiez le dans votre fichier ou recopiez-le si vous préférez commencer à vous familiariser avec le code.

Voici ce que cela donne dans gedit:

_images/gedit_hello.jpeg

Une fois fois le fichier hello.c saisi, enregistrez le et ouvrez un terminal à son emplacement. gedit propose dans son menu contextuel, d’ouvrir le fichier dans un terminal. Pour activer le menu contextuel, il suffit de faire un clic droit de la souris sur le fichier.

Il ne vous reste plus qu’à taper la commande de compilation comme ci-dessous:

$ gcc hello.c -o hello

Voilà, vous venez de créer votre premier programme à l’aide de cet article. Vous pouvez maintenant l’exécuter en l’invocant comme ci-dessous:

$ ./hello

Cela devrait produire un résultat similaire à ceci:

_images/hello.png

Analysons ce que nous avons fait

_images/gcc_compiler.jpeg

Nous avons créé un fichier exécutable hello à partir du fichier source hello.c à l’aide du compilateur gcc.

Un fichier source C comme hello.c, n’est que du texte. Pour en faire un exécutable il faut le traduire en instructions que le processeur peut exécuter. Plutôt que de traduire manuellement votre code source C en instructions pour le processeur, il est plus pratique d’utiliser un compilateur C comme gcc.

Bien qu’une seule commande n’ait été nécessaire pour obtenir l’exécutable hello, la compilation est en réalité constituée de plusieurs étapes regroupées sous le terme compilation par abus de langage.

En résumé, la première étape, dont le nom correct est effectivement compilation, consiste à analyser le source C, vérifier qu’il est correct (qu’il ne comporte ni ambiguïtés, ni erreurs) et génère l’ensemble d’instructions processeur correspondant. Le résultat de cette première étape est un nouveau fichier appelé fichier objet qui contient les instructions générées.

Cette première étape ne suffit pas à construire le programme exécutable complet puisqu’il manque encore plusieurs choses. En effet, vous utilisez la fonction puts() que vous n’avez pas écrite: les fonctions pour lire un caractère, écrire un caractère, les fonctions mathématiques, les fonctions de gestion des fichiers, et tout un tas d’autres fonctions que vous allez découvrir tout au long de votre parcours de développeur!

Ces fonctions et les instructions processeurs qui les réalisent sont fournies avec le compilateur C. Les fonctions standards sont regroupées dans un fichier par thème : une librairie. Il y a donc une librairie pour les fonctions mathématiques, les entrées / sorties, la gestion de la mémoire, etc. Cette organisation est très pratique, mais votre programme n’utilise, en général, que les quelques fonctions de chaque librairie qu’il utilise.

C’est lors de la deuxième étape, l”édition de liens que sont déterminées les fonctions nécessaires à votre programme. L’éditeur de lien va extraire de leurs librairies respectives les blocs d’instructions processeurs correspondants et relier ensembles tous ces blocs d’instructions pour former votre programme exécutable complet.

Lors des ces deux grandes étapes, il se passe beaucoup de chose, et j’espère qu’un jour, vous saurez exactement ce qu’il s’y passe. Que vous serez devenu un maître en programmation. Prendre connaissance de ces étapes va vous apporter bien plus de connaissance que vous ne l’imaginez! Continuez! Vous êtes sur le bon chemin.