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