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

C - Variable Argumente

Manchmal können Sie auf eine Situation stoßen, in der Sie eine Funktion haben möchten, die eine variable Anzahl von Argumenten, dh Parametern, anstelle einer vordefinierten Anzahl von Parametern annehmen kann. Die Programmiersprache C bietet eine Lösung für diese Situation und Sie können eine Funktion definieren, die je nach Anforderung eine variable Anzahl von Parametern akzeptieren kann. Das folgende Beispiel zeigt die Definition einer solchen Funktion.

int func(int, ... ) {
   .
   .
   .
}

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

Zu beachten ist, dass die Funktion func() hat sein letztes Argument als Ellipsen, d.h. drei Punkte (... ) und derjenige direkt vor den Ellipsen ist immer ein int was die Gesamtzahl der übergebenen Variablenargumente darstellt. Um diese Funktionalität zu nutzen, müssen Sie stdarg.h verwenden Header-Datei, die die Funktionen und Makros bereitstellt, um die Funktionalität von Variablenargumenten zu implementieren und den angegebenen Schritten zu folgen −

Lassen Sie uns nun den obigen Schritten folgen und eine einfache Funktion aufschreiben, die die variable Anzahl von Parametern nehmen und ihren 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;

   /* initialize valist for num number of arguments */
   va_start(valist, num);

   /* access all the arguments assigned to valist */
   for (i = 0; i < num; i++) {
      sum += va_arg(valist, int);
   }
	
   /* clean memory reserved for 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 er das folgende Ergebnis. Zu beachten ist, dass die Funktion average() wurde zweimal aufgerufen, und jedes Mal repräsentiert das erste Argument die Gesamtzahl der übergebenen Variablenargumente. 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. Arten von benutzerdefinierten Funktionen in der C-Programmierung
  2. C Lagerklasse
  3. Übergeben Sie Arrays an eine Funktion in C
  4. Python-Funktionsargumente
  5. C++-Variablen und -Typen:int, double, char, string, bool
  6. C-Variable, Datentypen, Konstanten
  7. Verilog-Aufgaben
  8. C - Variablen
  9. C - Funktionen
  10. C - Zeiger