Maison >développement back-end >C++ >Pourquoi les virgules finales sont-elles autorisées dans les listes d'initialisation C ?

Pourquoi les virgules finales sont-elles autorisées dans les listes d'initialisation C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-11 02:15:10332parcourir

Why Are Trailing Commas Allowed in C   Initializer Lists?

Virgules redondantes dans les listes d'initialisation

Il peut sembler surprenant que C autorise les virgules de fin dans les listes d'initialisation, telles que :

int a[] = {1, 2,};

Normalement, les virgules redondantes ne sont pas autorisées en C, comme le montre l'argument de la fonction lists :

// Syntax error
function_call(arg1, arg2,);

Cependant, dans le cas de listes d'initialiseurs, cette restriction est explicitement levée.

Justification des virgules redondantes

Cette flexibilité sert à plusieurs fins :

  • Génération de code Simplification :
    Il simplifie le processus de génération du code source en fournissant un traitement uniforme pour tous les éléments de la liste. Aucune manipulation particulière n'est requise pour le dernier élément.
  • Extension de code facile :
    L'ajout ou la suppression d'éléments de la liste devient plus pratique lorsque tous les éléments ont déjà des virgules de fin. Pas besoin de vous soucier de modifier la structure de la liste.
  • Transformation du code :
    Elle permet une réorganisation plus facile ou d'autres transformations des éléments de la liste sans avoir besoin de modifier les virgules.

Exemple de code

Considérez ce qui suit code :

int a[] = {
   1,
   2,
   3
};

Pour ajouter un élément à la liste, il vous suffit d'ajouter une ligne :

int a[] = {
   1,
   2,
   3,
   4
};

Comparez ceci au cas sans virgules finales :

int a[] = {
   1
   2
   3
};

Ajouter un élément nécessiterait de modifier la ligne existante et d'ajouter une nouvelle ligne :

int a[] = {
   1
   2,
   3,
   4
};

Ainsi, autoriser la fin les virgules dans les listes d'initialisation réduisent la complexité du code et améliorent la maintenabilité.

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