DEV Community

Lena
Lena

Posted on

Petite astuce pour commenter du code ayant déjà des commentaires

Contexte

Imaginez-vous en train de débugger votre programme : soudainement, vous voyez une fonction avec une partie de son contenu qui vous semble étrange. Vous vous dites que cela pourrait être intéressant de voir le comportement de votre programme sans ce bout de code.

Vous essayez donc de le mettre en commentaire (avec le raccourci de votre éditeur préféré, qui met automatiquement les caractères /* */, et là, vous remarquez dépité que seul le début de l'extrait de code a été commenté car il y a déjà des commentaires multilignes (utilisant /* */).

Vous êtes bien embêté, mais vous avez plusieurs solutions en tête, plus ou moins pratiques, pour palier ce problème. Supprimer le code, utiliser des commentaires mono-lignes ou bien mettre un if (false) {}, par exemple. Je vais vous parler d’une autre technique toute simple.

L'astuce

Il vous suffit de mettre le code que vous souhaitez commenter entre un #if 0 et le #endif correspondant.

Voici un exemple :

int big_and_ugly_function(int cost, const std::string& name)
{
    apply_margin(cost);

    #if 0
    /* Best comment ever ! */
    std::cout << "Hi: " << name << std::endl;
    apply_reduction(cost, name);

    /* Usefull comment. */
    apply_taxes(cost);

    /* This comment is blowing your mind. */
    std::cout << "The cost is: " << cost << std::endl;
    #endif

    return cost;
}
Enter fullscreen mode Exit fullscreen mode

Si jamais vous voulez décommenter temporairement le code, il suffira de remplacer le #if 0 par #if 1 comme ceci :

int big_and_ugly_function(int cost, const std::string& name)
{
    apply_margin(cost);

    #if 1
    /* Best comment ever ! */
    std::cout << "Hi: " << name << std::endl;
    apply_reduction(cost, name);

    /* Usefull comment. */
    apply_taxes(cost);

    /* This comment is blowing your mind. */
    std::cout << "The cost is: " << cost << std::endl;
    #endif

    return cost;
}
Enter fullscreen mode Exit fullscreen mode

Voilà, c’est tout pour cette astuce ! Il est probable que vous la connaissiez déjà, si vous avez un peu d’expérience, mais une piqûre de rappel ne fait pas de mal !

Top comments (4)

Collapse
 
pgradot profile image
Pierre Gradot

Tu peux aussi faire une sélection de tes ligne et demander à ton éditeur de mettre le bloc en commentaire. C'est normalement fait avec un // au début de chaque ligne.

Collapse
 
baduit profile image
Lena • Edited

VSCode code chez moi met des /**/ (configuration par défaut sur ça), ce qui est pratique d'ailleurs quand je veux commenter seulement un bout d'une ligne.
Faudrait que je regardes si j'ai pas moyen de faire un mixte des deux, // pour le multiligne et /**/ quand c'est seulement un bout de ligne.
Edit : correction formatage markdown

Collapse
 
pgradot profile image
Pierre Gradot

Tu t'es faite avoir par le markdown dans ton message, je pense ^^

Thread Thread
 
baduit profile image
Lena

Ouai x) j'ai édité, c'est plus clair là normalement ^^