Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

Variable Argumente in C meistern: Ein praktischer Leitfaden

Manchmal stoßen Sie auf eine Situation, in der Sie eine Funktion benötigen, die eine variable Anzahl von Argumenten (Parameter) entgegennehmen kann, anstatt einer vordefinierten Anzahl. Die C-Programmiersprache bietet eine Lösung für diese Situation: Sie können eine Funktion definieren, die basierend auf Ihren Anforderungen eine variable Anzahl von Parametern akzeptiert. Das folgende Beispiel zeigt die Definition einer solchen Funktion.

int func(int, ... ) {
    . . .
}
int main() {
    func(1, 2, 3);
    func(1, 2, 3, 4);
}

Es ist zu beachten, dass die Funktion func() ihr letztes Argument als Ellipse (drei Punkte ...) hat und das Argument direkt vor der Ellipse immer ein int ist, das die Gesamtzahl der übergebenen variablen Argumente repräsentiert. Um diese Funktionalität zu nutzen, müssen Sie die Header-Datei stdarg.h verwenden, die die Funktionen und Makros zur Implementierung der Funktionalität variabler Argumente bereitstellt. Folgen Sie diesen Schritten:

Nun folgen wir den obigen Schritten und schreiben eine einfache Funktion, die eine variable Anzahl von Parametern entgegennehmen und deren Durchschnitt zurückgeben kann:

Live Demo
#include <stdio.h>
#include <stdarg.h>
double average(int num, ...) {
    va_list valist;
    double sum = 0.0;
    int i;
    /* initialisiere valist für num Anzahl von Argumenten */
    va_start(valist, num);
    /* greife auf alle Argumente zu, die valist zugewiesen sind */
    for (i = 0; i < num; i++) {
        sum += va_arg(valist, int);
    }
    /* bereinige den für valist reservierten Speicher */
    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 er das folgende Ergebnis. Beachten Sie, dass die Funktion average() zweimal aufgerufen wurde und jedes Mal das erste Argument die Gesamtzahl der übergebenen variablen Argumente repräsentiert. Nur Ellipsen werden verwendet, um eine variable Anzahl von Argumenten zu übergeben.

Average of 2, 3, 4, 5 = 3.500000
Average of 5, 10, 15 = 10.000000

C Sprache

  1. Vier bewährte Muster für benutzerdefinierte Funktionen in C
  2. C Speicherklassen verstehen: Gültigkeitsbereich, Lebensdauer und Performance
  3. Arrays an Funktionen in C übergeben: 1D & 2D – Praxisleitfaden
  4. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  5. C++ Variablen und Datentypen: Experten‑Guide zu int, double, char, string, bool
  6. C Variablen, Datentypen und Konstanten – Ein praktischer Leitfaden
  7. Verilog Assignments verstehen: Typen, Syntax und Best Practices
  8. Variablen in C verstehen: Typen, Benennungsregeln & Speicherverwaltung
  9. C-Funktionen meistern: Struktur, Deklaration & Best Practices
  10. C-Zeiger meistern: Praktische Schritte zur fortgeschrittenen Programmierung