Maison >développement back-end >C++ >Quels sont les effets rares des parenthèses excessives en C ?

Quels sont les effets rares des parenthèses excessives en C ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 01:18:29825parcourir

What Are the Uncommon Effects of Excess Parentheses in C  ?

Parenthèses supplémentaires avec différents effets :

Les parenthèses en C n'affectent généralement pas la signification du programme, sauf dans des situations rares :

Recherche de nom en fonction de l'argument Prévention :

Les parenthèses peuvent empêcher la recherche de nom dépendante d'un argument (ADL) dans les appels de fonction. Alors que la forme fun(arg) prend en compte les fonctions amies de portée d'espace de noms via ADL, (fun)(arg) ne le fait pas, permettant une sélection précise des fonctions.

Activation de l'opérateur virgule :

Dans les contextes de liste ( arguments de fonction, listes d'initialisation), l'opérateur virgule s'applique uniquement entre parenthèses. Les parenthèses de la forme a, (b, c), d activent l'opérateur virgule, tandis que a, b, c, d ne le font pas.

Résolution d'ambiguïté dans les analyses contrariantes :

Les parenthèses peuvent résoudre ambiguïté dans les situations « d'analyse contrariante », où une construction peut être soit une déclaration, soit une expression. En entourant un type de style fonction entre parenthèses, il peut être clairement identifié comme une expression, évitant ainsi toute ambiguïté d'analyse.

Déduction de la référence dans decltype :

Des parenthèses supplémentaires peuvent affecter la référence déduite dans decltype expressions. Si l'opérande de decltype(e) est une lvalue non évaluée, le mettre entre parenthèses (decltype((e))) en déduit une référence const lvalue (&).

Erreurs de macro du préprocesseur :

Les parenthèses peuvent éviter les erreurs dans les macros du préprocesseur en contrôlant l'expansion des macros. Par exemple, l'utilisation de parenthèses autour des paramètres de macro évite les problèmes de priorité des opérateurs, et le fait de placer les appels de fonction entre parenthèses protège contre les substitutions de macros indésirables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn