Das beste C variablen Parameter-Tutorial im Jahr 2024. In diesem Tutorial können Sie C variablen Parameter lernen
Manchmal kann man eine solche Situation auftritt, möchten Sie mit variablen Anzahl von Argumenten zu funktionieren, und nicht als eine vorgegebene Anzahl von Argumenten. C-Sprache für dieses Szenario bietet eine Lösung, die eine Funktion zu definieren, ermöglicht, die eine variable Anzahl von Parametern gemäß speziellen Anforderungen annehmen kann. Das folgende Beispiel zeigt die Definition einer solchen Funktion.
int func(int, de. ) { . . . } int main() { func(1, 2, 3); func(1, 2, 3, 4); }
Bitte beachten Sie, dass die Funktionfunc () eine letzte schriftliche Argumente Punkte , dass drei Punkte (de.),das Argument vor dem Auslassungs immerint ist,die Gesamtzahl der variablen Parameter , die übergeben werden. Um diese Funktion zu nutzen, müssen Siestdarg.h Header - Datei zu verwenden, die die Funktionalität von variablen Parametern bietet Funktionen und Makros zu erreichen.Spezifischen Schritte sind wie folgt:
Folgen wir nun die oben genannten Schritte Funktionen mit einer variablen Anzahl von Argumenten zu schreiben und gibt ihre Durchschnitt:
#include <stdio.h> #include <stdarg.h> double average(int num,de.) { va_list valist; double sum = 0.0; int i; /* 为 num 个参数初始化 valist */ va_start(valist, num); /* 访问所有赋给 valist 的参数 */ for (i = 0; i < num; i++) { sum += va_arg(valist, int); } /* 清理为 valist 保留的内存 */ va_end(valist); return sum/num; } int main() { printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2,3,4,5)); printf("Average of 5, 10, 15 = %f\n", average(3, 5,10,15)); }
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es folgendes Ergebnis. Es sollte beachtet werden , dass die FunktionMittelwert () zweimal aufgerufen wird, jedesmal , wenn der erste Parameter die Gesamtzahl repräsentiert sind variable Parameter übertragen.Ellipsen verwendet, um eine variable Anzahl von Argumenten zu liefern.
Average of 2, 3, 4, 5 = 3.500000 Average of 5, 10, 15 = 10.000000