90 votes

Quel est ce

Tout en parcourant le code de source du compilateur gcc (gcc/c-family/c-pragma.c), je vois :

et peu importe d’avoir beaucoup de C programmation ans derrière moi, ces bits : `` sont totalement inconnu pour moi encore. S’il vous plaît quelqu'un peut-il expliquer ce qu’ils signifient ? Google ne semble pas le trouver.

81voto

unwind Points 181987

Ils sont GCC interne "magie", c'est à dire la partie de l'implémentation de compilateur lui-même.

Voir cette page qui parle de leur utilisation. La macro est utilisée pour marquer les types de déchets-les fins de la collecte. Il peut y avoir des arguments trop, voir cette page pour plus de détails.

Mise à JOUR:: Comme l'a souligné par Drew Dorman dans un commentaire, la double parenthèse ne font pas partie de la "internalness" de la GNU mise en œuvre; ils sont généralement utilisés lorsque vous souhaitez recueillir toute une liste d'arguments dans un seul argument en faveur de l'appelé macro. Cela peut parfois être utile lors de l'emballage par exemple, printf(), trop. Voir à cette question, pour en savoir plus sur cette technique.

45voto

MSalters Points 74024

En général, il est utilisé avec les macros pour protéger des virgules. Compte tenu de , l’appel de la macro serait illégal. À l’aide d’une paire de parenthèses supplémentaire précise quelle virgule est blindé : contre .

Dans ce cas, le peut prendre plusieurs arguments, séparés par des virgules, mais toutes ces virgules doivent être blindés. C’est pourquoi le cercle intérieur entourent tous les arguments.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X