Maison > développement back-end > C++ > Pourquoi utiliser des parenthèses dans les déclarations de variables C ?

Pourquoi utiliser des parenthèses dans les déclarations de variables C ?

Barbara Streisand
Libérer: 2024-12-20 16:30:14
original
918 Les gens l'ont consulté

Why Use Parentheses in C   Variable Declarations?

Parenthèses dans les déclarations de variables : dévoiler leur signification

En travaillant avec C , les développeurs sont peut-être tombés sur la syntaxe quelque peu déroutante qui permet de déclarer des variables avec des parenthèses. Des déclarations comme int (x) = 0; ou même int (((x))) = 0; peut laisser s'interroger sur leur utilité et leur praticité.

La réponse à cette énigme réside dans la notion de regroupement. Prenons l'exemple de la déclaration d'un pointeur vers une fonction de type f(int). L'approche standard, int *f(int);, est interprétée comme une fonction renvoyant int*. Cependant, pour spécifier correctement un pointeur vers cette fonction, des parenthèses doivent être introduites pour former int (*f)(int);.

Ce même principe s'applique également aux déclarations de tableau. La déclaration int *x[5]; désigne un tableau de cinq int*, alors que int (*x)[5]; pointe vers un tableau de cinq int.

Dans l'extrait de code fourni :

struct B { };
struct C
{
  C (B *) {}
  void f () {};
};

int main()
{
  B *y;
  C (y);  // Oops, compiler error!
}
Copier après la connexion

L'intention est de construire un objet de type C qui effectuerait des opérations utiles dans son destructeur. Cependant, le compilateur interprète mal C (y) ; comme déclaration d'une variable y de type C, entraînant une erreur de redéfinition. C’est là qu’intervient le regroupement entre parenthèses. En entourant l'appel du constructeur sous la forme C (y) au lieu de C(y), l'interprétation du compilateur est corrigée, permettant au code de se compiler comme prévu.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal