Différentes parties d'un fichier source
Partie 1 : Bloc des fichiers inclus
Bloc des fichiers inclus, aussi appelés fichiers d'en-tête car ils sont généralement ajoutés au début du programme. Ces fichiers définissent toute une gamme de fonctions qui seront détaillées plus tard.
L'instruction #include est une commande exécutée par le compilateur, avant la compilation du code source.
C'est pourquoi on appelle ce type d'instruction une directive du pré-processeur.
#include <stdio.h> invoque la bibliothèque des fonctions d'entrée sortie (saisie clavier par scanf() et sortie écran par printf() ).
Code c (Fichiers inclus) (4 lignes)
/* traitement_a.c création du tableau avec introduction de valeurs impression du tableau de la composante i jusqu'à la composante q */ #include <stdio.h>
Partie 2: Bloc de la définition des constantes et des variables globales.
On trouve ici les définitions des constantes (#define) et des variables globales (accessibles depuis n'importe quel point du programme).
Code c (constantes et variables globales) (1 ligne)
#define NMAX 20
Partie 3: Bloc des prototypes de fonctions.
Prototype de la fonction lect. Celle ci prend deux paramètres, mais comme elle ne retourne aucune valeur elle est typée void.
Code c (prototypes de fonctions) (1 ligne)
void lect (int z[],int &n)
Partie 4: Bloc de la fonction main.
Tout programme C comporte une et une seule fonction main, qui est le point d'entrée dans le programme.
L'en-tête de fonction la définit comme fonction main.
Tout le code compris entre la première accolade ouverte et la dernière accolade fermée (corps de la fonction) est l'ensemble des instructions exécutables de cette fonction.
void main (void) /* fonction d'impression des val entre les composantes i et q*/
{
int t[nmax];
int i=0,q=0,nmax,n;
int continu =0;
lect(t,n);
printf ("\nintroduire la composante i\n(valeur entre 0 non compris,"
"et %d non compris):", n);
scanf ("%d", &i);
printf ("\nintroduire la composante q\n(valeur entre %d non compris,"
"et %d non compris)\nq > i :",i, n);
scanf ("%d", &q);
if (i<q)
for (nmax=i; nmax<=q; nmax++)
printf ("%d\n", t[nmax]);
else
printf ("\n\n\nATTENTION : q <= i !!!");
while (i<=q && continu==1)
{printf ("\n\n\nvoulez-vous continuer ?\n1 pour continuer :");
scanf ("%d", &continu);
while (continu==1)
{printf ("\nintroduire la composante i\n(valeur entre 0 non compris,"
"et %d non compris):", n);
scanf ("%d", &i);
printf ("\nintroduire la composante q\n(valeur entre %d non compris,"
"et %d non compris)\nq > i :",i, n);
scanf ("%d", &q);
if (i<q)
for (nmax=i; nmax<=q; nmax++)
printf ("%d\n", t[nmax]);
else
printf ("\n\n\nATTENTION : q <= i !!!");}
}
}
Partie 5: Bloc des fonctions appelées.
Fonctions appelées depuis la fonction main.
void lect (int z[],int &n) /* sous fonction; permet l'affectation des val du tableau*/
{
int a;
printf("\nintroduire un nbre\n0 pour terminer :");
scanf ("%d", &a);
n=0; /* afin de remplir le tableau depuis la 1ère case */
z[n]=a;
n++;
while (a && n<NMAX) /* eviter de dépasser le nbre d'espaces mém prévus */
{printf("\nintroduire un nbre\n0 pour terminer :");
scanf ("%d", &a);
z[n]=a;
n++;}
}
Remarques
- Le programme est structuré en blocs qui sont des séquences d'une ou de plusieurs instructions délimitées par des accolades.
- Dans void lect (int z[],int&n), le signe & devant la variable permet d'appeler cette variable depuis la fonction main.
English translation
You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.
Thank you in advance.
Document created the 19/03/2002, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/c-fichier-cpp-blocs.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.