Heim > Backend-Entwicklung > C++ > Hauptteil

Wo sollten Standardparameterwerte in C definiert werden?

Mary-Kate Olsen
Freigeben: 2024-11-26 22:52:11
Original
347 Leute haben es durchsucht

Where Should Default Parameter Values Be Defined in C  ?

Standardparameterwerte in C definieren

Wo sollten Sie in C den Standardwert für einen Funktionsparameter definieren: nur in der Deklaration, nur in der Definition oder an beiden Stellen?

Die Antwort ist, dass der Standardparameterwert in der Deklaration angegeben werden muss, nicht in der Definition. Die Deklaration ist der einzige für den Aufrufer sichtbare Teil der Funktion und muss daher alle Informationen enthalten, die für den korrekten Aufruf der Funktion erforderlich sind.

Mit anderen Worten: Der Standardparameterwert ist Teil des Funktionstyps Unterschrift. Es bestimmt den Typ des Parameters und ob er einen Standardwert hat. Wenn der Standardparameterwert in der Deklaration weggelassen wird, geht der Compiler davon aus, dass der Parameter keinen Standardwert hat, und generiert einen Fehler, wenn er nicht vom Aufrufer bereitgestellt wird.

Zum Beispiel die folgende Funktion Die Deklaration definiert eine Funktion, die zwei ganzzahlige Parameter x und y mit den Standardwerten 0 bzw. 1 annimmt:

int foo(int x = 0, int y = 1);
Nach dem Login kopieren

Der folgende Funktionsaufruf ruft die Funktion foo mit dem Standardwert auf Werte für beide Parameter:

int result = foo();
Nach dem Login kopieren

Der folgende Funktionsaufruf ruft die foo-Funktion mit einem nicht standardmäßigen Wert für den x-Parameter auf:

int result = foo(5);
Nach dem Login kopieren

Beachten Sie, dass der Standardparameterwert für y wird im zweiten Funktionsaufruf weiterhin verwendet, obwohl der x-Parameter explizit angegeben wird. Dies liegt daran, dass der Standardparameterwert Teil der Typsignatur der Funktion ist und es nicht möglich ist, ihn im Funktionsaufruf zu überschreiben.

Es ist möglich, den Standardparameterwert in der Funktionsdefinition zu definieren, aber dies wird nicht empfohlen. Die Definition ist nur für den Compiler sichtbar und hat keinen Einfluss auf die Typsignatur der Funktion. Daher kann die Pflege verwirrend sein und zu Fehlern führen, wenn der Standardparameterwert in der Deklaration, aber nicht in der Definition geändert wird.

Das obige ist der detaillierte Inhalt vonWo sollten Standardparameterwerte in C definiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage