Structure d'un programme en langage C
Un programme écrit en langage C est composé de deux parties :
Partie 1 : Les déclarations
Elle comporte la déclaration des fonctions des bibliothèques (bibliothèque standard ou
autre) par inclusion de fichiers fournis avec le langage et peut comprendre des
déclarations des variables « globales ».
La première instruction #include <stdio.h> est une directive au compilateur dont le but
est de réaliser l'inclusion mentionnée : ici, l'inclusion des fonctions d'entrée/sortie
intégrées à la bibliothèque standard.
On peut également faire appel à d'autres bibliothèques, par exemple une bibliothèque
mathématique. Dans ce cas, l'inclusion dans le code par #include<math.h> devra
s'accompagner d'une prise en compte explicite de la bibliothèque à la compilation.
Partie 2 : Le corps du programme
Tout programme C doit comporter une fonction principale main. Cette fonction est celle
utilisée par le système pour exécuter le programme.
#include <stdio.h>
int main(void) {
printf("hello, world\n") ;
return 0 ;
La fonction peut ne pas retourner de valeur, dans ce cas de figure, main doit être précédé
du type void et l'instruction return ne recevra aucune valeur ou sera absente. Par
convention, la valeur retournée est 0 lorsque l'exécution du programme s'est bien passée.
Instructions : constituent le corps du programme. Elles sont plus ou moins complexes et
nombreuses selon les programmes.
La partie Les déclarations peut contenir des définitions de fonctions qui seront utilisées
par l'intermédiaire de la fonction principale main.
Les commentaires
Un commentaire débute par /* et se termine par */. Par exemple, /* Ceci est un
commentaire */ On ne peut pas imbriquer des commentaires.
Quand on met en commentaire un morceau de programme, il faut donc veiller à ce que
celui-ci ne contienne pas de commentaire.
Déclaration des variables
Il y a deux types de déclarations :
1-Les déclarations prédéfinies du système utilisées à travers des instructions du
préprocesseur #include <...>,
2-Les déclarations du programmeur.
Une déclaration est une réservation de place adaptée pour stocker une donnée. Cette
place sera accessible via un nom défini au moment de la déclaration.
Les instructions suivantes sont des déclarations :
int x; // déclaration d'une variable de type nombre entier accessible via le nom x,
float y ; // déclaration d'une variable de type nombre réel accessible via le nom y.
D'une manière plus générale, la déclaration des variables se fait ainsi : type
nom_de_la_variable ;
Les instructions d'entrée/sortie
Instruction d'entrée : La fonction scanf est la fonction qui permet à l'utilisateur
d'introduire les données lors de l'exécution du programme.
La fonction scanf permet d'introduire plusieurs données à la fois.
Pour introduire les données, il est nécessaire d'indiquer à la machine sous quelle forme
elles seront introduites. Une chaîne de caractères permettra de définir la forme souhaitée
pour chaque donnée. Pour chaque donnée, nous transmettrons également l'adresse de
la variable destinée à recevoir la valeur. Toute instruction se termine par un « ; ».
scanf("<format>",<&variable1>,<&variable2>, ...) ;
Le format permet de transformer les données d'un format externe (sous forme textuelle)
à un format interne.
Les spécificateurs de format pour scanf
Format Type de données
%d ou %i entier relatif
%u entier naturel (unsigned)
%o entier exprimé en octal
%b entier exprimé en hexadécimal
%c caractère
%s chaîne de caractères
%f ou %e rationnel en notation en virgule flottante ou exponentielle (scientifique)
La fonction printf
Avant de commencer à faire vos premiers programmes en C, nous allons présenter la fonction
printf qui vous sera très utile pour l’affichage des messages et des valeurs des variables. Cette
fonction permet d’écrire des données dites formatées dans la sortie standard (écran). Voici
deux exemples d’utilisation de printf :
1. printf("Hello World !!");
2. printf("%d kilogramme ´equivaut `a %d grammes", 1, 1000);
L’argument de la fonction printf dit format est une chaîne de caractères qui détermine ce qui
sera affiché par printf et sous quelle forme.
Dans l’exemple 1 c’est "Hello World !!" et dans l’exemple 2 c’est "%d kilogramme équivaut à
%d grammes". Cette chaîne est composée de texte ”normal” et de séquences de contrôle
permettant d’inclure des variables dans la sortie. Ainsi, dans l’exemple 2, lors de l’affichage le
premier %d sera remplacé par la valeur 1 et le second %d par la valeur 1000. Il en résulte
l’affichage suivant : 1 kilogramme équivaut à 1000 grammes.
L’environnement de programmation
Créer un nouveau projet
Pour créer un nouveau projet, c'est très simple : allez dans le menu File / New / Project .
Dans la fenêtre qui s'ouvre (fig. suivante), choisissez Console application .
Cliquez sur Go pour créer le projet. Un assistant s'ouvre. Faites Next , cette première page
ne servant à rien.
On vous demande ensuite si vous allez faire du C ou du C++ (fig. suivante) : répondez « C ».
On vous demande le nom de votre projet (fig. suivante) et dans quel dossier les fichiers source
seront enregistrés.
Enfin, la dernière page (fig. suivante) vous permet de choisir de quelle façon le programme
doit être compilé. Vous pouvez laisser les options par défaut, ça n'aura pas d'incidence sur ce
que nous allons faire dans l'immédiat (veillez à ce que la case Debug ou Release au moins
soit cochée).
Cliquez sur Finish , c'est bon !
Code::Blocks vous créera un premier projet avec déjà un tout petit peu de code source
dedans.
Ajout d’un nouveau fichier à un projet existant
Pour ajouter un nouveau fichier à un projet existant, sélectionnez ce projet comme actif, puis
allez dans File New File... . Dans la fenêtre de dialogue choisissez le type approprié (soit “C/C++
header”, soit “C/C++ source”), et cliquez sur Go. Pour un fichier source on vous demandera
ensuite de préciser le langage (C ou C++). Ensuite, donnez un nom au nouveau fichier (avec le
chemin d’accès complet, il est conseillé de placer les fichiers du projet dans le même
répertoire où se trouve le fichier *.cbp). Finalement, n’oubliez pas de cocher les cases « Add
file to active project in build target(s) » et appuyez sur Save.
Erreurs de compilation
Les erreurs de compilation courantes. Lorsque le compilateur vous indique :
– error : expected ‘;’ before... : un point-virgule a été oublié.
– error : expected declaration or statement at end of input : une accolade a été oubliée.
– error : ’nom variable’ undeclared (first use in this function) : vous utilisez une variable qui
n’a pas été déclarée préalablement (ou orthographiée différemment).
– a.c:(.text+0x19) : undefined reference to ’nom fonction’ collect2 : error : ld returned 1 exit
status vous utilisez une fonction non connue par le compilateur (mal orthographiée ?)
– fatal error: nom fichier.h: Aucun fichier ou dossier de ce type les fichiers d’en-têtes que vous
incluez ont été mal orthographiés.
Exercice d’application
L'énoncé
Écrire un programme qui permet de saisir deux entiers et affiche leur produit.
L'énoncé
Modifier le programme ci-dessus pour saisir cette fois-ci deux réels.
L'énoncé
Écrire un programme qui demande à l’utilisateur de saisir trois nombres x, y et z. Le
programme affiche la moyenne de ces trois nombres dans les cas suivants :
(a) x, y et z sont des entiers.
(b) x, y et z sont des réels.