Maison  >  Article  >  développement back-end  >  Où définir les paramètres par défaut en C : déclaration ou définition ?

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

DDD
DDDoriginal
2024-10-30 01:53:29755parcourir

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>

Cas 2 :

<code class="cpp">int Add(int a, int b);
int Add(int a, int b = 3);</code>

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!

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