En C , où devez-vous définir la valeur par défaut d'un paramètre de fonction : dans la déclaration uniquement, dans la définition uniquement, ou aux deux endroits ?
La réponse est que la valeur du paramètre par défaut doit être spécifiée dans la déclaration, pas dans la définition. La déclaration est la seule partie visible de la fonction par l'appelant, elle doit donc contenir toutes les informations nécessaires pour que la fonction soit appelée correctement.
En d'autres termes, la valeur du paramètre par défaut fait partie du type de la fonction. signature. Il détermine le type du paramètre et s'il a une valeur par défaut. Si la valeur du paramètre par défaut est omise de la déclaration, le compilateur supposera que le paramètre n'a pas de valeur par défaut et générera une erreur s'il n'est pas fourni par l'appelant.
Par exemple, la fonction suivante La déclaration définit une fonction qui prend deux paramètres entiers, x et y, avec des valeurs par défaut de 0 et 1, respectivement :
int foo(int x = 0, int y = 1);
L'appel de fonction suivant appelle la fonction foo avec les valeurs par défaut pour les deux paramètres :
int result = foo();
L'appel de fonction suivant appelle la fonction foo avec une valeur autre que celle par défaut pour le paramètre x :
int result = foo(5);
Notez que la valeur du paramètre par défaut pour y est toujours utilisé dans le deuxième appel de fonction, même si le paramètre x est explicitement spécifié. En effet, la valeur du paramètre par défaut fait partie de la signature de type de la fonction et il n'est pas possible de la remplacer dans l'appel de fonction.
Il est possible de définir la valeur du paramètre par défaut dans la définition de la fonction, mais cela n’est pas recommandé. La définition n'est visible que par le compilateur et n'affecte pas la signature de type de la fonction. En conséquence, cela peut être déroutant à maintenir et cela peut conduire à des erreurs si la valeur du paramètre par défaut est modifiée dans la déclaration mais pas dans la définition.
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!