2008-11-11 8 views
2

J'ai remarqué, en utilisant Visual Studio 2003, que je peux "commenter" mes commentaires pour qu'ils ne soient plus des commentaires. Celui-ci a besoin d'un exemple:Commenter les commentaires

Si j'ai:

/* 
int commented_out = 0; 
*/ 

Je peux commenter le/* et */avec // et le code dans le répertoire/* et */n'est plus « commenté » (le texte passe à la couleur sans commentaire et le compilateur le traite comme du code une fois de plus). Comme si:

///* 
int commented_out = 0; 
//*/ 

J'ai trouvé cela est vrai pour msvc 2003, est-ce un comportement normal C++ ou est-ce juste un coup de chance qui fonctionne avec ce compilateur?

+0

Si vous commentez les commentaires, ce que vous attendez d'autre? – CheGueVerra

Répondre

19

Oui, c'est un comportement parfaitement normal. La norme C++ indique qu'un /* est le début d'un bloc de commentaire uniquement s'il n'est pas lui-même commenté. J'utilise souvent ce que vous avez écrit ci-dessus pour commenter ou décommenter un bloc de code en ajoutant/supprimant un caractère. Un petit truc sympa pour passer entre deux blocs de code, dont un est toujours en commentaire est:

//* 
code block 1 (uncommented) 
/*/ 
code block 2 (commented) 
//*/

Maintenant, supprimez une barre oblique depuis le début, et il devient

/* 
code block 1 (commented) 
/*/ 
code block 2 (uncommented) 
//*/

pas quelque chose à utiliser dans le code de production, mais très utile pour les modifications rapides du débogage.

+0

N'avait pas pensé à cela avant. C'est génial. –

+0

truc cool! Merci! – CodingWithSpike

10

Cela devrait fonctionner dans n'importe quel compilateur car le // est rencontré en premier dans le flux d'entrée.

J'ai tendance à utiliser #if 0 pour ce genre de choses et changer à #if 1 décommenter, ici:

#if 0 
    int commented_out = 0; 
#endif 

Je n'ai pas à vous soucier des marqueurs de commentaire du tout.

1

En fait, cela fonctionne dans presque toutes les langues avec des commentaires de bloc de style C.

/* 
int foo = 0; 
/*/ 
int foo = 1; 
//*/ 

ou même XML commente

<!---> 
a 
<!--> 
b 
<!----> 

malheureusement je dessine un blanc sur le sabre laser de lua commentaires

--[[--------- 
---------]]-- 
Questions connexes