Un programme en langage C est constitué des six groupes de composants élémentaires suivants :

  • les identificateurs,
  • les mots-clefs,
  • les constantes,
  • les chaînes de caractères,
  • les opérateurs,
  • les signes de ponctuation.

On peut ajouter à ces six groupes les commentaires, qui sont enlevés par le préprocesseur.

1. Les identificateurs

Le rôle d'un identificateur est de donner un nom à une entité du programme. Plus précisément, un identificateur peut désigner :

  • un nom de variable ou de fonction,
  • un type défini par typedefstructunion ou enum,
  • une étiquette.

Un identificateur est une suite de caractères parmi :

  • les lettres (minuscules ou majuscules, mais non accentuées),
  • les chiffres,
  • le ``blanc souligné'' (_).

Le premier caractère d'un identificateur ne peut pas être un chiffre. Par exemple, var1tab_23 ou _deb sont des identificateurs valides ; par contre, 1i et i:j ne le sont pas. Il est cependant déconseillé d'utiliser _ comme premier caractère d'un identificateur car il est souvent employé pour définir les variables globales de l'environnement C. 

Les majuscules et minuscules sont différenciées.

Le compilateur peut tronquer les identificateurs au-delà d'une certaine longueur. Cette limite dépend des implémentations, mais elle est toujours supérieure à 31 caractères. (Le standard dit que les identificateurs externes, c'est-à-dire ceux qui sont exportés à l'édition de lien, peuvent être tronqués à 6 caractères, mais tous les compilateurs modernes distinguent au moins 31 caractères). 

2. Les mots-clefs

Un certain nombre de mots, appelés mots-clefs, sont réservés pour le langage lui-même et ne peuvent pas être utilisés comme identificateurs. L'ANSI C compte 32 mots clefs :

auto const double float int short struct unsigned
break continue else for long signed switch void
case default enum goto register sizeof typedef volatile
char do extern if return static union while

que l'on peut ranger en catégories

  • les spécificateurs de stockage 

          auto   register   static   extern   typedef
     
  • les spécificateurs de type

          char   double   enum   float   int   long   short   signed   struct
          union   unsigned   void

     
  • les qualificateurs de type

         const   volatile
     
  • les instructions de contrôle

         break   case   continue   default   do   else   for   goto   if
         switch   while

     
  • divers

         return   sizeof

3. Les commentaires

Quel que soit le langage de programmation, on a la possibilité d'ajouter des commentaires à son code. Le langage C n'échappe pas à la règle.

Ajouter un commentaire, c'est taper du texte au milieu de votre programme pour indiquer ce qu'il fait, à quoi sert telle ligne de code, etc. C'est vraiment quelque chose d'indispensable car, même en étant un génie de la programmation, on a besoin de faire quelques annotations par-ci par-là. Cela permet :

  • de vous retrouver au milieu d'un de vos codes source plus tard. Le plus souvent, on oublie vite comment fonctionnent les programmes qu'on a écrits. Si vous faites une pause ne serait-ce que quelques jours, vous aurez besoin de vous aider de vos propres commentaires pour vous retrouver dans un gros code ;

  • si vous donnez votre projet à quelqu'un d'autre (qui ne connaît a priori pas votre code source), cela lui permettra de se familiariser avec bien plus rapidement.

Il y a plusieurs manières d'insérer un commentaire. Tout dépend de la longueur du commentaire que vous voulez écrire.

  • Votre commentaire est court : il tient sur une seule ligne, il ne fait que quelques mots. Dans ce cas, vous devez taper un double slash (//) suivi de votre commentaire. Par exemple :

     // Ceci est un commentaire

    Vous pouvez aussi bien écrire un commentaire seul sur sa ligne, ou bien à droite d'une instruction. C'est d'ailleurs quelque chose de très pratique car ainsi, on sait que le commentaire sert à indiquer à quoi sert la ligne sur laquelle il est. Exemple :

     printf("Bonjour\n"); // Cette instruction affiche Bonjour à l'écran
    
  • Votre commentaire est long : vous avez besoin d'écrire plusieurs phrases qui tiennent sur plusieurs lignes. Dans ce cas, vous devez taper un code qui signifie « début de commentaire » et un autre code qui signifie « fin de commentaire » :

    • pour indiquer le début du commentaire : tapez un slash suivi d'une étoile (/*) ;

    • pour indiquer la fin du commentaire : tapez une étoile suivie d'un slash (*/).

    Vous écrirez donc par exemple :

     /* Ceci est 
    un commentaire 
    sur plusieurs lignes */

Reprenons notre code source qui écrit « Bonjour », et ajoutons-lui quelques commentaires juste pour s'entraîner :

 /* 
Ci-dessous, ce sont des directives de préprocesseur. 
Ces lignes permettent d'ajouter des fichiers au projet, 
fichiers que l'on appelle bibliothèques.
Grâce à ces bibliothèques, on disposera de fonctions toutes prêtes pour afficher
par exemple un message à l'écran.
*/
#include 
#include  
/* 
Ci-dessous, vous avez la fonction principale du programme, appelée main. 
C'est par cette fonction que tous les programmes commencent. 
Ici, ma fonction se contente d'afficher Bonjour à l'écran. 
*/ 
int main() 
{ 
     printf("Bonjour"); // Cette instruction affiche Bonjour à l'écran 
     return 0; // Le programme renvoie le nombre 0 puis s'arrête 
} 

Voilà ce que donnerait notre programme avec quelques commentaires. Il a l'air d'être plus gros, mais en fait c'est le même que tout à l'heure. Lors de la compilation, tous les commentaires seront ignorés. Ces commentaires n'apparaîtront pas dans le programme final, ils servent seulement aux programmeurs.

Retenez donc : les commentaires doivent guider le programmeur dans son code source, lui permettre de se repérer. Essayez de commenter un ensemble de lignes plutôt que toutes les lignes une par une.

Et pour finir sur une petite touche culturelle, voici une citation tirée de chez IBM :

Citation

Si après avoir lu uniquement les commentaires d'un programme vous n'en comprenez pas le fonctionnement, jetez le tout !

4. Les conventions d'écriture d'un programme C

Il existe très peu de contraintes dans l'écriture d'un programme C. Toutefois ne prendre aucune précaution aboutirait à des programmes illisibles. Aussi existe-t-il un certain nombre de conventions.

  • On n'écrit qu'une seule instruction par ligne : le point virgule d'une instruction ou d'une déclaration est toujours le dernier caractère de la ligne.
  • Les instructions sont disposées de telle façon que la structure modulaire du programme soit mise en évidence. En particulier, une accolade ouvrante marquant le début d'un bloc doit être seule sur sa ligne ou placée à la fin d'une ligne. Une accolade fermante est toujours seule sur sa ligne.
  • On laisse un blanc
    • entre les mots-clefs ifwhiledoswitch et la parenthèse ouvrante qui suit,
    • après une virgule,
    • de part et d'autre d'un opérateur binaire.
  • On ne met pas de blanc entre un opérateur unaire et son opérande, ni entre les deux caractères d'un opérateur d'affectation composée.
  • Les instructions doivent être indentées afin que toutes les instructions d'un même bloc soient alignées.

2016-10-13 05:20:37 / mazoughou@magoe.gn

0 commentaires

Votre impression compte aussi