Comments
Les commentaires servent de documentation intégrée au code. Lorsqu'ils sont insérés dans un programme, ils sont effectivement ignorés par le compilateur ; ils sont uniquement destinés à être utilisés comme notes par les humains qui lisent le code source.
Table des matières |
Syntaxe
/*
commentaire
*/
|
(1) | ||||||||
//
commentaire
|
(2) | (depuis C99) | |||||||
Tous les commentaires sont supprimés du programme lors de la phase de traduction 3 en remplaçant chaque commentaire par un unique caractère d'espacement.
Style C
Les commentaires de style C sont généralement utilisés pour commenter de grands blocs de texte ou de petits fragments de code ; cependant, ils peuvent être utilisés pour commenter des lignes individuelles. Pour insérer du texte en tant que commentaire de style C, entourez simplement le texte avec
/*
et
*/
. Les commentaires de style C indiquent au compilateur d'ignorer tout contenu entre
/*
et
*/
. Bien que cela ne fasse pas partie de la norme C,
/**
et
**/
sont souvent utilisés pour indiquer des blocs de documentation ; ceci est légal car la deuxième astérisque est simplement traitée comme faisant partie du commentaire.
Sauf à l'intérieur d'une
constante de caractère
, d'un
littéral de chaîne
, ou d'un commentaire, les caractères
/*
introduisent un commentaire. Le contenu d'un tel commentaire est examiné uniquement pour identifier les caractères multioctets et pour trouver les caractères
*/
qui terminent le commentaire. Les commentaires de style C ne peuvent pas être imbriqués.
C++-style
Les commentaires de style C++ sont généralement utilisés pour commenter des lignes individuelles de texte ou de code ; cependant, ils peuvent être placés ensemble pour former des commentaires multilignes. Pour insérer du texte en tant que commentaire de style C++, il suffit de précéder le texte de
Sauf à l'intérieur d'une
constante de caractère
, d'un
littéral de chaîne
ou d'un commentaire, les caractères
// y = f(x); // invoke algorithm
Un commentaire de style C peut apparaître dans un commentaire de style C++ : // y = f(x); /* invoke algorithm */
Un commentaire de style C++ peut apparaître dans un commentaire de style C ; ceci est un mécanisme pour exclure un petit bloc de code source : /*
y = f(x); // invoke algorithms
z = g(x);
*/
|
(depuis C99) |
Notes
Parce que les commentaires sont supprimés avant l'étape du préprocesseur, une macro ne peut pas être utilisée pour former un commentaire et un commentaire de style C non terminé ne déborde pas d'un fichier inclus via #include.
/* Une tentative d'utiliser une macro pour former un commentaire. */ /* Mais, un espace remplace les caractères "//". */ #ifndef DEBUG #define PRINTF // #else #define PRINTF printf #endif ... PRINTF("Erreur dans le fichier %s à la ligne %i\n", __FILE__, __LINE__);
En plus du commentaire, d'autres mécanismes utilisés pour l'exclusion du code source sont :
#if 0 puts("ceci ne sera pas compilé"); /* aucun conflit avec les commentaires de style C */ // aucun conflit avec les commentaires de style C++ #endif
et
if(0) { puts("ce code sera compilé mais ne sera pas exécuté"); /* aucun conflit avec les commentaires de style C */ // aucun conflit avec les commentaires de style C++ }
L'introduction des commentaires // en C99 a constitué un changement cassant dans certaines circonstances rares :
a = b //*diviseur:*/ c + d; /* C89 compile a = b / c + d; C99 compile a = b + d; */
Exemple
#include <stdio.h> /* C-style comments can contain multiple lines. */ /* Or, just one line. */ // C++-style comments can comment one line. // Or, they can // be strung together. int main(void) { // The below code won't be run // puts("Hello"); // The below code will be run puts("World"); // A note regarding backslash + newline. // Despite belonging to translation phase 2 (vs phase 3 for comments), // '\' still determines which portion of the source code is considered // as 'comments': // This comment will be promoted to the next line \ puts("Won't be run"); // may issue a warning "multi-line comment" puts("Hello, again"); }
Sortie :
World Hello, again
Références
- Norme C17 (ISO/CEI 9899:2018) :
-
- 6.4.9 Commentaires (p: 54)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 6.4.9 Commentaires (p: 75)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 6.4.9 Commentaires (p: 66)
- Norme C89/C90 (ISO/CEI 9899:1990) :
-
- 3.1.9 Commentaires
Voir aussi
|
Documentation C++
pour
Commentaires
|