Commentaires
Il est possible d’insérer des commentaires dans un code source. Un commentaire est ignoré par le compilateur et n’a pas besoin de respecter la syntaxe du C.
Il peut contenir du code source, un texte explicatif, ou n’importe quoi d’autre.
Deux syntaxes de commentaires existent en C : le
commentaire multiligne /* */
et sur une seule
ligne //
.
Commentaires multiligne
Le commentaire multiligne permet de commenter plusieurs lignes de code :
int main() {
int toto;
/*
int tata;
int titi;
*/
}
Il n’est pas passible d’imbriquer deux commentaires
multilignes : le commentaire multiligne s’arrête au
premier */
rencontré :
int main() {
int toto;
/*
int tata;
/* int titi; // ici s'arrête le commentaire */
*/
}
Si votre souhait est de commenter plusieurs lignes de code,
sans vous soucier de commentaires deja existants dans
le code que vous voulez commenter,
une alternative est d’utiliser une
directive de préprocesseur
#if 0
/ #endif
int main() {
int toto;
#if 0
int tata;
/*int titi; */
#endif
}
Commentaires de documentation
Lorsqu’on écrit du code qui a nécessité du temps et de l’effort, puis qu’on se rend compte que ce code n’est plus utile, mais qu’on pense qu’il sera à nouveau utile dans le futur, afin de s’épargner du temps et de l’effort dans le futur, on le garde “au chaud” – entre commentaires. Dans ce cas le commentaire sert à “désactiver” du code : le commentaire contient du code C prêt à l’emploi.
Un autre cas d’usage du commentaire est de contenir une explication de ce que fait le code : c’est à dire de documenter le code afin d’aider à sa compréhension.
Pour faire la différence entre les commentaire de documentation
du code commenté temporairement, de nombreux EDI
reconnaissant la convention qui consiste à rajouter
deux étoiles après la barre oblique ouvrante (/**
)
pour signifier que le commentaire sert de documentation
et non à désactiver du code. Les
EDI
affichent
du code de documentation avec une fonte ou une couleur
différente des commentaires “normaux”.
Vu que les EDI proposent des raccourcis claviers pour commenter rapidement des lignes ou des blocs de code, rajouter une étoile supplémentaire ainsi permet la distinction entre commentaires volontaires et commentaires automatiques.
De la même facon, un commentaire mono ligne avec
trois barres obliques ///
se distingue d’un commentaire
mono ligne automatique //
et signifie qu’il a été ajouté
à la main à des fins de documentation.
/**
* Cette fonction ne fait rien
* Notez que ce bloc de commentaire commence avec /**
*/
int ma_fonction() {
return 42;
/* return 0; */ /** Ici il s'agit de code commenté,
donc on ne met que une seule étoile */
}
int main() {
/** Cet appel est uniquement à but démonstratif */
ma_fonction(),
}
Commentaires sur une seule ligne
Une autre syntaxe, empruntée du C++, et disponible depuis
le
C ANSI
, est le commentaire sur
une seule ligne //
. Il se termine au premier caractère
« saut de ligne » (\n
) rencontré.
int main() {
int toto;
//int tata; // ce commentaire s'arrête à la ligne
int titi;
}
Phase de compilation
Lors de la compilation , les commentaires sont remplacés par une unique espace, avant que le préprocesseur n’intervienne.
On ne peut donc pas creer de commentaires avec le preprocesseur, et le preprocesseur n’a pas d’influence sur les commentaires.
#define END_COM */
/* END_COM // ce commentaire disparait avant le
preprocessus, donc la directive "END_COM" ne termine
pas ce commentaire. */
// le preprocesseur ne verra pas la ligne ci dessous
/* #define IGNORED */