Maison > développement back-end > C++ > le corps du texte

Où définir les paramètres par défaut en C : déclaration ou définition ?

DDD
Libérer: 2024-10-30 01:53:29
original
754 Les gens l'ont consulté

Where should default parameters be defined in C  : declaration or definition?

Paramètre par défaut dans la définition de fonction par rapport à la déclaration

En C, les fonctions peuvent être déclarées avec des paramètres par défaut, ce qui leur permet d'être appelées sans fournir de valeurs pour tous les arguments. Cependant, la syntaxe de spécification du paramètre par défaut peut varier.

Cas 1 :

<code class="cpp">int Add(int a, int b = 3);
int Add(int a, int b);</code>
Copier après la connexion

Cas 2 :

<code class="cpp">int Add(int a, int b);
int Add(int a, int b = 3);</code>
Copier après la connexion

Les deux syntaxes sont valides. Cependant, l'approche standard et recommandée est le Cas 1, où le paramètre par défaut est spécifié dans la déclaration de la fonction. En effet :

Considérez le scénario suivant :

  • Un fichier d'en-tête (lib.h) déclare la fonction avec l'une ou l'autre des syntaxes.
  • Un fichier d'implémentation distinct ( lib.cpp) définit la fonction avec le paramètre par défaut.
  • Un autre fichier source (test.cpp) inclut le fichier d'en-tête et appelle la fonction sans fournir de valeur pour le paramètre par défaut.

Dans le cas 1 :

Le compilateur verra la déclaration du paramètre par défaut dans le fichier d'en-tête lors de la compilation de test.cpp. Cela garantit que l'appel à la fonction dans test.cpp est valide, même si le paramètre par défaut n'a pas été explicitement fourni.

Dans le cas 2 :

Le compilateur ne voit pas la déclaration du paramètre par défaut dans le fichier d'en-tête lors de la compilation de test.cpp, car elle n'est définie que dans le fichier d'implémentation (lib.cpp). Cela entraînera une erreur de compilation dans test.cpp, car le paramètre par défaut n'a pas été déclaré.

Par conséquent, spécifier le paramètre par défaut dans la déclaration de fonction (lib.h) est le moyen standard de garantir un comportement cohérent à travers différentes unités de compilation.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!