Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

C - Argumentos variables

A veces, puede encontrarse con una situación, en la que desea tener una función, que puede tomar una cantidad variable de argumentos, es decir, parámetros, en lugar de una cantidad predefinida de parámetros. El lenguaje de programación C proporciona una solución para esta situación y se le permite definir una función que puede aceptar una cantidad variable de parámetros según sus requisitos. El siguiente ejemplo muestra la definición de dicha función.

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

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

Cabe señalar que la función func() tiene su último argumento como puntos suspensivos, es decir, tres puntos (... ) y el que está justo antes de los puntos suspensivos siempre es un int que representará el número total de argumentos de variable pasados. Para utilizar dicha funcionalidad, debe utilizar stdarg.h archivo de encabezado que proporciona las funciones y macros para implementar la funcionalidad de argumentos variables y seguir los pasos dados −

Ahora sigamos los pasos anteriores y escribamos una función simple que pueda tomar el número variable de parámetros y devolver su promedio −

Demostración en vivo
#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));
}

Cuando el código anterior se compila y ejecuta, produce el siguiente resultado. Cabe señalar que la función average() ha sido llamado dos veces y cada vez que el primer argumento representa el número total de argumentos variables que se pasan. Solo se usarán puntos suspensivos para pasar un número variable de argumentos.

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

Lenguaje C

  1. Tipos de funciones definidas por el usuario en programación C
  2. Clase de almacenamiento C
  3. Pasar arreglos a una función en C
  4. Argumentos de la función de Python
  5. Variables y tipos de C++:int, double, char, string, bool
  6. C Variable, tipos de datos, constantes
  7. Asignaciones de Verilog
  8. C - Variables
  9. C - Funciones
  10. C - Punteros
  11. C - Campos de bits