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

Dominando Argumentos Variáveis em C: Guia Prático

Às vezes, você pode se deparar com uma situação em que deseja ter uma função que possa aceitar 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 na 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 reticências, ou seja, três pontos (...) e o logo antes das reticências é sempre um int que representará o número total de argumentos variáveis passados. Para usar essa funcionalidade, você precisa fazer uso do arquivo de cabeçalho stdarg.h, que fornece as funções e macros para implementar a funcionalidade de argumentos variáveis e seguir as etapas dadas:

Agora, vamos seguir as etapas acima e escrever uma função simples que pode aceitar um número variável de parâmetros e retornar sua média:

#include <stdio.h>
#include <stdarg.h>
double media(int num, ...) {
    va_list valist;
    double soma = 0.0;
    int i;
    /* inicializa valist para num número de argumentos */
    va_start(valist, num);
    /* acessa todos os argumentos atribuídos a valist */
    for (i = 0; i < num; i++) {
        soma += va_arg(valist, int);
    }
    /* limpa memória reservada para valist */
    va_end(valist);
    return soma/num;
}
int main() {
    printf("Média de 2, 3, 4, 5 = %f\n", media(4, 2,3,4,5));
    printf("Média de 5, 10, 15 = %f\n", media(3, 5,10,15));
    return 0;
}

Quando o código acima é compilado e executado, produz o seguinte resultado. Deve-se notar que a função media() foi chamada duas vezes e cada vez o primeiro argumento representa o número total de argumentos variáveis sendo passados. Apenas reticências serão usadas para passar número variável de argumentos.

Média de 2, 3, 4, 5 = 3.500000
Média de 5, 10, 15 = 10.000000

Linguagem C

  1. Quatro Padrões Comprovados para Funções Definidas pelo Usuário em C
  2. Entendendo Classes de Armazenamento em C: Escopo, Tempo de Vida e Performance
  3. Como Passar Arrays 1D e 2D para Funções em C – Um Guia Prático
  4. Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
  5. Variáveis e Tipos de Dados em C++: Guia Completo sobre int, double, char, string, bool
  6. Variáveis, Tipos de Dados e Constantes em C – Guia Prático
  7. Entendendo Atribuições em Verilog: Tipos, Sintaxe e Boas Práticas
  8. Entendendo Variáveis em C: Tipos, Regras de Nomenclatura e Gerenciamento de Memória
  9. Dominando Funções em C: Estrutura, Declaração e Boas Práticas
  10. Dominando Ponteiros em C: Passos Práticos para Programação Avançada