Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

C - Argumentos Variáveis


Às vezes, você pode se deparar com uma situação, quando deseja ter uma função, que pode receber um número variável de argumentos, ou seja, parâmetros, em vez de um número predefinido de parâmetros. A linguagem de programação C fornece uma solução para esta situação e você pode definir uma função que pode aceitar um número variável de parâmetros com base em sua necessidade. O exemplo a seguir mostra a definição de tal função.
int func(int, ... ) {
   .
   .
   .
}

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

Deve-se notar que a função func() tem seu último argumento como elipses, ou seja, três pontos (... ) e aquele imediatamente antes das elipses é sempre um int que representará o número total de argumentos de variável passados. Para usar essa funcionalidade, você precisa usar stdarg.h arquivo de cabeçalho que fornece as funções e macros para implementar a funcionalidade de argumentos de variáveis ​​e siga as etapas fornecidas −

Agora vamos seguir os passos acima e escrever uma função simples que pode pegar o número variável de parâmetros e retornar sua média −
Demonstração ao 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));
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado. Deve-se notar que a função média() foi chamado duas vezes e cada vez o primeiro argumento representa o número total de argumentos variáveis ​​sendo passados. Apenas elipses serão usadas para passar um número variável de argumentos.
Average of 2, 3, 4, 5 = 3.500000
Average of 5, 10, 15 = 10.000000

Linguagem C

  1. Tipos de funções definidas pelo usuário na programação C
  2. Classe de armazenamento C
  3. Passar arrays para uma função em C
  4. Argumentos da função Python
  5. Variáveis ​​e tipos C++:int, double, char, string, bool
  6. Variável C, Tipos de Dados, Constantes
  7. Atribuições Verilog
  8. C - Variáveis
  9. C - Funções
  10. C - Ponteiros