6
votes

Quel est le meilleur moyen d'écrire des commentaires dans C?

en C Nous pouvons faire des commentaires de deux manières:

1> xxx

2> xxx

Quelle est la différence entre les deux?
Est un meilleur que l'autre?

ou

Les deux ont la même impact et aucune différence de compilation ou de traitement à une plate-forme?

EDIT: En particulier le code d'écriture pour incorporé


1 commentaires

Je ne programme pas en C, mais je pense que certains projets open source (une telle version d'IRM de l'interprète Ruby) ne permettent que le premier moyen. Si vous envisagez de leur contribuer, vous pouvez également profiter de l'habitude d'adapter leur préférence.


8 Réponses :


5
votes

Il suffit d'utiliser ce qui est plus pratique et naturel. Commentaires courts, une poignée de mots, à la fin d'une courte ligne fonctionnent bien avec // . Des commentaires plus longs, répartis sur plusieurs lignes, sont peut-être mieux avec la tradition / * ... * / style. Quoi qu'il en soit, tout dépend de la préférence personnelle et des normes de codage de vos équipes.

Cela ne fait aucune différence pour le processus de compilation.


0 commentaires

9
votes

Techniquement, seul le premier moyen est garanti de travailler sur tous les compilateurs, présents et passés. En pratique, tous les compilateurs C sont mis en œuvre depuis le milieu des années 1980 ou ainsi implémenter les deux sens, de sorte que si vous écrivez pour un compilateur hérité, vous pouvez faire de la manière qui fonctionne le mieux pour vous ou votre organisation.


2 commentaires

Les commentaires de style C ++ (//) ont été ajoutés à C dans la norme C99, bien que de nombreux compilateurs leur permettent beaucoup plus longtemps.


// Les commentaires sont l'une des rares fonctions de langue C99 (non-bibliothèque) que MSVC prend en charge lors de la compilation en mode C. En fait, je me demande si c'est le seul?



0
votes

Tout comme vous l'avez dit: les deux ont le même impact et aucune différence de compilation ou de traitement chez n'importe quelle plate-forme.


0 commentaires

0
votes
  1. C'est un moyen de créer facilement des commentaires multilignes
  2. Vous ne pouvez commenter que par ligne à l'aide de cette façon de commenter.

    Lequel est le meilleur est vraiment une question de préférence personnelle, pour des commentaires couvrant plusieurs lignes, j'utiliserais le premier, mais cela préférentielle personnelle.


0 commentaires

0
votes
//

1 commentaires

Non, le 2e exemple (double barre oblique) ne fonctionnera sur aucun compilateur car il n'était pas pris en charge à l'origine (comme Wallyk dit dans l'une des autres réponses))



1
votes

Une des raisons d'utiliser // code> pourrait être si vous souhaitez commenter un bloc de code plus important qui a des commentaires à l'intérieur. Vous ne pouvez pas faire de commentaires imbriqués avec / * * / code>.

Ceci ne compilera pas: p> xxx pré>

mais c'est ok: p >

/*

//printf("foo");
printf("bar");

*/


0 commentaires

3
votes

Si vous avez besoin de grep certains code, vous aurez des avantages avec le commentaire unique utilisé pour chaque ligne, même si vous commencez un bloc (STRG + SHIFT + 7 dans Eclipse). Le code Grepsped où votre phrase de recherche a été trouvée est affichée avec le //. Le résultat ne peut pas conduire à des malentendus parce que non affiché de commentaire multi-lignes.

1 #define MY_COUNTER 42
2 if( MY_COUNTER == index )
3 {
4     tempVar = calcSomething();
5     doThis();
6 /*    
7     tempVar = MY_COUNTER;
8 */
9     doThat();
8 }


0 commentaires

6
votes

une raison (peut-être théorique) pas utiliser // est qu'ils ne sont pas pris en charge dans C90. Il est vrai que la plupart, peut-être tous, les compilateurs de C modernistes prennent en charge les commentaires // , même s'ils ne prennent pas en charge le reste de C99, mais différents compilateurs soutiennent différents sous-ensembles de C99.

Tout compilateur prenant en charge le C90 rejetera (ou au moins avertir de) // si vous l'invoquez dans un mode de conformité C90.

Si vous êtes fanatique sur la portabilité et que vous souhaitez vous assurer que votre code compilait avec n'importe quel compilateur C, vous devez le compiler dans le mode de conformité C90 - ce qui signifie // commentaires sera rejeté. Vous peut activer des extensions ou partielles (ou même complètes) C99, mais vous permettrez également d'autres fonctionnalités de C99, et votre compilateur ne vous avertira pas d'autres Caractéristiques spécifiques au C99 que vous pourriez utiliser accidentellement.

Et comme l'indique le commentaire d'Andrew Grimm, certains projets peuvent avoir des normes de codage nécessitant une forme ou l'autre.

Par exemple, GCC prend en charge les deux // commentaires et long long (ainsi qu'un certain nombre d'autres fonctionnalités de C99); Activation de // dans GCC désactive diagnostics pour long long .

Mais à la plupart des fins, ce n'est probablement pas une raison suffisante pour éviter les commentaires // . Vous pouvez écrire un code raisonnablement portable si vous êtes au courant des fonctionnalités spécifiques au C99, que les compilateurs prennent en charge ces fonctionnalités et les compilateurs que vous vous souciez de soutenir.


1 commentaires

C'est ce que je fais que je veux savoir .. j'ai doute que // n'est pas pris en charge dans la version plus ancienne de C..Merci