Programar em C/Passagem de Parametros

Origem: Wikilivros, livros abertos por um mundo aberto.

[editar] Passagem de Parâmetros

Essa explicação e para quem compila com o gcc da GNU.
O que são parâmetros ?
Com os programas em interface gráfica usamos botões ou ícones.
Quando utilizamos os parâmetros com o console ou prompt os parâmetros são reconhecidos como opções.
Para quem usa linux onde o console não é banalizado como em outros SO é mais fácil de entender.
Digamos que você compilou seu programa e deu o nome "Calcular" porque é um programa que calcula alguma coisa.
Então você executa ele no console ou em modo shell .

 $./Calcular  restar

Calcular e restar  ; são argumentos ou opções.
Onde restar é um parâmetro ou opção do seu programa
Então esse programa pode ter vários parâmetros ,somar, restar, multiplicar etc.. Um exemplo de código:

/*----------------------------Parâmetros.c------------------------------*/
  #include <stdio.h>
  /* E igual a  int main(int argc, char *argv[])  */
   int main(int argument_count, char *argument_value[])
  {
    int i;
    printf("Nome do Programa :%s\n", argument_value[0] );
     for (i = 1 ; i < argument_count; i++)
   printf("Parâmetros passados %d : %s\n", i, argument_value[i]);
    /* De um enter no fim*/
  } 

Para compilar:

user@SO:/meu_diretotio$ gcc Parametros.c -o Argumentos

Como diríamos é só passar alguns argumentos para o compilador ;)

Examinando o código

Vamos dar uma olhada na função main(int argc, char *argv[]) vocês podem remarcar os nomes:

  • argc "argument count"  : Conta o numero de argumentos incluindo o nome do programa.
  • E argv "arguments values" : Vamos dizer que cada argv[] é um nome de parâmetro.
  • Então temos um que nos da a quantidade de parâmetros e outro que nos da os nomes de cada parâmetro ou opção.

São nomes tradicionais eles podem ser modificado para outros nomes desde que os tipos continuem sendo os mesmos.

Exe:

    NOME    opçao1   opçao2   opçao3     :  argc = 4
$./Calcular  somar   depois  restar      :  argv[] vai de argv[0]  a  argv[3]

Aqui argc é igual a 4.

argv[] é na realidade uma tabela de ponteiros exe:

argv[0] e igual a '.' '/' 'C' 'a' 'l' 'c' 'u' 'l ' 'a' 'r' '/0' Calcular

argv[1] e igual a 's' 'o' 'm' 'a' 'r' '/0' somar