Heim >Backend-Entwicklung >C++ >C++-Kompilierungsfehler: Funktionsaufruf stimmt nicht mit Funktionsdeklaration überein, wie kann man ihn lösen?

C++-Kompilierungsfehler: Funktionsaufruf stimmt nicht mit Funktionsdeklaration überein, wie kann man ihn lösen?

WBOY
WBOYOriginal
2023-08-22 12:39:221804Durchsuche

C++-Kompilierungsfehler: Funktionsaufruf stimmt nicht mit Funktionsdeklaration überein, wie kann man ihn lösen?

C++-Kompilierungsfehler: Funktionsaufruf stimmt nicht mit Funktionsdeklaration überein, wie kann man ihn lösen?

Bei der Entwicklung von C++-Programmen treten zwangsläufig einige Kompilierungsfehler auf. Einer der häufigsten Fehler ist, dass der Funktionsaufruf nicht mit der Funktionsdeklaration übereinstimmt. Diese Art von Fehler kommt unter C++-Programmierern häufig vor, da sie nicht auf die Korrektheit der Funktionsdeklaration achten und zu Kompilierungsproblemen führen, was letztendlich Zeit und Energie zur Behebung des Problems verschwendet und die Entwicklungseffizienz beeinträchtigt. Um diesen Fehler zu vermeiden, müssen einige Normen und Standardpraktiken befolgt werden. Schauen wir uns diese unten an.

Was ist ein Funktionsaufruf-Nichtübereinstimmungsfehler?

Ein Funktionsaufruf-Nichtübereinstimmungsfehler tritt normalerweise auf, wenn der Compiler einen Aufruf einer Funktion nicht ihrer Deklaration zuordnen kann. Diese Situation tritt normalerweise auf, wenn:

  1. Die Funktionsdeklaration nicht mit den definierten Parametern übereinstimmt.
  2. Die Funktionsdeklaration und der definierte Rückgabetyp stimmen nicht überein.
  3. Der C++-Compiler kann die Funktionsdeklaration oder -definition nicht finden.
  4. Es gibt doppelt deklarierte Funktionen.

So beheben Sie den Fehler, dass der Funktionsaufruf nicht mit der Funktionsdeklaration übereinstimmt

Um den Fehler zu beheben, dass der Funktionsaufruf nicht mit der Funktionsdeklaration übereinstimmt, müssen Sie die folgenden Schritte ausführen:

  1. Überprüfen Sie, ob die Funktion Deklaration und definierte Parameter stimmen überein

Wenn der Funktionsaufruf nicht mit der Funktionsdeklaration übereinstimmt Wenn ein Nichtübereinstimmungsfehler auftritt, müssen Sie zunächst prüfen, ob die Deklaration und Definition der Funktion mit den Parametern übereinstimmen. Wenn sie nicht übereinstimmen, müssen Sie den Parametertyp in der Funktionsdeklaration ändern oder den Parametertyp in der Funktionsdefinition ändern, um ihn mit der Deklaration konsistent zu machen.

Beispiel:

Deklaration: int function(int a, int b);

Definition: int function(int a, float b){}

Im obigen Beispiel hat die Funktionsdeklaration zwei ganzzahlige Parameter, während The Die Funktionsdefinition hat einen Integer- und einen Float-Parameter, daher muss der zweite Parametertyp der Funktionsdefinition in einen Integer geändert werden.

  1. Überprüfen Sie, ob die Funktionsdeklaration und der definierte Rückgabetyp übereinstimmen.

Wenn der Rückgabetyp nicht übereinstimmt, gibt der Compiler eine Fehlermeldung aus, dass der Funktionsaufruf nicht mit der Funktionsdeklaration übereinstimmt. In diesem Fall müssen Sie prüfen, ob die Funktionsdefinition und der deklarierte Rückgabetyp identisch sind. Wenn sie nicht identisch sind, müssen Sie den Rückgabetyp in der Funktionsdefinition und -deklaration ändern, um sie gleich zu machen.

Beispiel:

Deklaration: float function(float a, float b);

Definition: int function(float a, float b){}

Im obigen Beispiel gibt die Funktionsdeklaration eine Gleitkommazahl zurück, while Die Funktionsdefinition gibt eine Ganzzahl zurück. Die Funktionsdefinition muss geändert werden, um eine Gleitkommazahl zurückzugeben.

  1. Überprüfen Sie, ob die Namen und Parameter der Funktionsdeklaration und -definition korrekt sind.

Wenn keine Fehler in den Namen und Parametern der Funktionsdeklaration und -definition vorliegen, der Compiler jedoch weiterhin einen Fehler bei der Nichtübereinstimmung von Funktionsaufruf und Funktionsdeklaration meldet , kann es daran liegen, dass die Funktionsanweisung oder -definition nicht gefunden werden kann. In diesem Fall kann es erforderlich sein, die Dateieinbindung und -verknüpfung erneut zu überprüfen.

Beispiel:

Die Deklaration und Definition sind korrekt, aber es gibt immer noch einen Fehler, dass der Funktionsaufruf nicht mit der Funktionsdeklaration übereinstimmt:

include „function.h“

int main()
{

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

}

In diesem Fall müssen Sie als Nächstes prüfen, ob die Header-Datei function.h korrekt eingebunden ist.

  1. Überprüfen Sie, ob es doppelt deklarierte Funktionen gibt.

In C++ können Funktionen an mehreren Orten deklariert werden, einschließlich Quelldateien, Headerdateien und Bibliotheksdateien. Mehrere Deklarationen können zu Fehlern bei der Kompilierung führen und zu Funktionsaufrufen führen, die nicht mit den Funktionsdeklarationen übereinstimmen. Daher muss die Datei auf doppelte Deklarationen überprüft werden, damit entsprechende Änderungen oder Löschungen vorgenommen werden können.

Fazit

Fehler bei Diskrepanzen zwischen Funktionsaufrufen und Funktionsdeklarationen können Fehler im C++-Compiler verursachen und somit den normalen Betrieb des Programms beeinträchtigen. Daher müssen Programmierer einige Spezifikationen befolgen, einschließlich der Parameter- und Rückgabetypübereinstimmung, die korrekte Einbeziehung der Header-Dateien und die Prüfung, ob in den Dateien doppelte Deklarationen vorhanden sind usw., um solche Fehler zu vermeiden oder zu beheben. Wenn Kompilierungsfehler gefunden werden, müssen diese sorgfältig überprüft und Schritt für Schritt behoben werden, um die Genauigkeit und Korrektheit des Programms sicherzustellen.

Das obige ist der detaillierte Inhalt vonC++-Kompilierungsfehler: Funktionsaufruf stimmt nicht mit Funktionsdeklaration überein, wie kann man ihn lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn