Le langage C, comme tous les langages, a une grammaire qu'il est nécessaire de respecter pour que le compilateur (le programme qui traduit le langage C en un langage que la machine comprend) soit capable de faire son travail. En effet, celui-ci n'est pas "intelligent" et ne peut deviner ce qu'on a voulu dire ou corriger les fautes. Il est cependant capable de dire s'il ne comprend pas, ou s'il y a des incohérences (par exemple si le nombre de parenthèses ouvertes n'est pas le même que celui de parenthèses fermées...). Toutefois, il arrive souvent que le compilateur réussisse à traduire le programme, et que ce dernier ne fonctionne pas comme prévu. Il s'agit alors d'erreurs de conception (c'est ce qu'on appelle un Bug...). De telles erreurs peuvent avoir des conséquences graves, alors il faut faire attention à ce qu'on fait...
La syntaxe du C est telle qu'il peut être très facile
d'écrire un programme correct (donc lisible par le compilateur)
mais illisible pour toute autre personne que le programmeur (et
même par le programmeur lui-même après seulement
quelques jours !!! Pour des exemples de ce que cela peut donner, jetez un il là, ou essayez
de comprendre le fonctionnement du programme de M. Phillips!). Cela est encore plus
gênant lorsque le programme contient un (ou plusieurs) bug(s)
qui deviennent très difficilement détectables. C'est
pourquoi il faut respecter quelques règles de
présentation (qui seront rappelées
régulièrement) pour une bonne lisibilité, mais
aussi mettre des commentaires qui décrivent en français
ce que l'on écrit en C. En C, les commentaires sont contenus
entre les symboles /*
et */
. Tout ce qui se trouve
entre ces deux paires de symboles est ignoré par le
compilateur. Dans tous ce qui suit, les commentaires des programmes
seront écrits en rouge pour en faciliter la lecture.
Un bloc d'instructions est une suite d'instructions consécutives qui sont enfermées dans des accolades:
{ instructions ; }
Tous les programmes en C sont décomposés en blocs qui sont liés à ce qui le précède (une fonction, une boucle, une condition...). Pour des raisons de lisibilité, il est fortement recommandé d'indenter (quelques blancs) les instructions du bloc par rapport aux accolades, afin de bien visualiser l'ensemble du bloc et éventuellement des sous-blocs inclus.
Un programme en C se compose d'un programme principal et
éventuellement de sous programmes. Il est écrit dans un fichier texte
portant l'extension .c
Un exemple ne contenant que
la structure de base sera utilisé lors des premières applications,
c'est le fichier vide.c
En C, toutes les fonctions ont la même structure :
Le programme principal suit cette structure, mais son type de retour, son nom et ses arguments sont imposés:
int main (void) { /* déclaration des variables */ /* corps du programme principal */ return 0; /* 0 ou autre valeur entière... */ }
Le nom du programme principal est main
; son type de
retour est entier (int
); il ne prend en
général pas d'arguments (dans certain cas il peut en
prendre, mais cela sort du cadre de cette introduction...). Dans ce
cas, le type est void
(vide).
Ce premier exemple ne fait donc rien. Il montre cependant la structure du programme principal: on commence par déclarer toutes les variables dont on va se servir dans le corps du programme.