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;
}
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;
}
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)
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.
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
Tu t'es faite avoir par le markdown dans ton message, je pense ^^
Ouai x) j'ai édité, c'est plus clair là normalement ^^