Maison >développement back-end >C++ >Erreur de compilation C++ : l'appel de fonction ne correspond pas à la déclaration de fonction, comment la résoudre ?

Erreur de compilation C++ : l'appel de fonction ne correspond pas à la déclaration de fonction, comment la résoudre ?

WBOY
WBOYoriginal
2023-08-22 12:39:221801parcourir

Erreur de compilation C++ : lappel de fonction ne correspond pas à la déclaration de fonction, comment la résoudre ?

Erreur de compilation C++ : l'appel de fonction ne correspond pas à la déclaration de fonction, comment la résoudre ?

Lors du développement de programmes C++, vous rencontrerez inévitablement des erreurs de compilation. L'une des erreurs courantes est que l'appel de fonction ne correspond pas à la déclaration de fonction. Ce type d'erreur existe largement parmi les programmeurs C++. En raison du fait de ne pas prêter attention à l'exactitude de la déclaration des fonctions, cela entraîne des problèmes de compilation, ce qui fait finalement perdre du temps et de l'énergie à résoudre le problème et affecte l'efficacité du développement. Les moyens d’éviter cette erreur nécessitent de suivre certaines normes et pratiques standards, examinons-les ci-dessous.

Qu'est-ce qu'une erreur de non-concordance d'appel de fonction ?

Une erreur de non-concordance d'appel de fonction se produit généralement lorsque le compilateur ne peut pas faire correspondre un appel à une fonction à sa déclaration. Cette situation se produit généralement lorsque :

  1. La déclaration de la fonction ne correspond pas aux paramètres définis.
  2. La déclaration de fonction et le type de retour défini ne correspondent pas.
  3. Le compilateur C++ ne trouve pas la déclaration ou la définition de la fonction.
  4. Il existe des fonctions déclarées en double.

Comment résoudre l'erreur selon laquelle l'appel de fonction ne correspond pas à la déclaration de fonction

Pour résoudre l'erreur selon laquelle l'appel de fonction ne correspond pas à la déclaration de fonction, vous devez suivre les étapes suivantes :

  1. Vérifiez si la fonction La déclaration et les paramètres définis correspondent

Lorsque l'appel de fonction ne correspond pas à la déclaration de fonction Lorsqu'une erreur de non-concordance se produit, vous devez d'abord vérifier si la déclaration et la définition de la fonction correspondent aux paramètres. S'ils ne correspondent pas, vous devez modifier le type de paramètre dans la déclaration de fonction ou modifier le type de paramètre dans la définition de fonction pour le rendre cohérent avec la déclaration.

Exemple :

Déclaration : fonction int(int a, int b);

Définition : fonction int(int a, float b){}

Dans l'exemple ci-dessus, la déclaration de fonction a deux paramètres entiers, tandis que The La définition de fonction a un paramètre entier et un paramètre flottant, donc le deuxième type de paramètre de la définition de fonction doit être remplacé par un entier.

  1. Vérifiez si la déclaration de fonction et le type de retour défini correspondent

Lorsque le type de retour ne correspond pas, le compilateur émettra une erreur indiquant que l'appel de fonction ne correspond pas à la déclaration de fonction. Dans ce cas, vous devez vérifier si la définition de la fonction et le type de retour déclaré sont identiques. S'ils ne sont pas identiques, vous devez modifier le type de retour dans la définition et la déclaration de la fonction pour les rendre identiques.

Exemple :

Déclaration : fonction float(float a, float b);

Définition : fonction int(float a, float b){}

Dans l'exemple ci-dessus, la déclaration de fonction renvoie un nombre à virgule flottante, et la fonction La définition renvoie un entier, la définition de la fonction doit être modifiée pour renvoyer un flottant.

  1. Vérifiez que les noms et paramètres de la déclaration et de la définition de la fonction sont corrects

S'il n'y a pas d'erreurs dans les noms et les paramètres de la déclaration et de la définition de la fonction, mais que le compilateur signale toujours une erreur d'appel de fonction et de non-concordance de la déclaration de fonction , c'est peut-être parce qu'il ne trouve pas l'instruction ou la définition de la fonction. Dans ce cas, il peut être nécessaire de revérifier l'inclusion et la liaison des fichiers.

Exemple :

La déclaration et la définition sont correctes, mais il y a toujours une erreur indiquant que l'appel de fonction ne correspond pas à la déclaration de fonction :

include "function.h"

int main()
{

int result = foo(3,4);
return 0;

}

Dans ce cas, vous devez ensuite vérifier si le fichier d'en-tête function.h est correctement inclus.

  1. Vérifiez s'il existe des fonctions déclarées en double

En C++, les fonctions peuvent être déclarées à plusieurs emplacements, y compris les fichiers source, les fichiers d'en-tête et les fichiers de bibliothèque. Plusieurs déclarations peuvent provoquer des erreurs de compilation et entraîner des appels de fonction qui ne correspondent pas aux déclarations de fonction. Par conséquent, le fichier doit être vérifié pour détecter les déclarations en double afin que les modifications ou suppressions appropriées puissent être apportées.

Conclusion

Les erreurs de divergence entre les appels de fonction et les déclarations de fonction peuvent provoquer des erreurs dans le compilateur C++, affectant ainsi le fonctionnement normal du programme. Par conséquent, les programmeurs doivent suivre certaines spécifications, notamment la correspondance des paramètres et des types de retour, y compris correctement les fichiers d'en-tête et vérifier s'il y a des déclarations en double dans les fichiers, etc., pour éviter ou résoudre de telles erreurs. Si des erreurs de compilation sont détectées, elles doivent être soigneusement vérifiées et résolues étape par étape pour garantir l'exactitude et l'exactitude du programme.

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