Ir para conteúdo
Fórum Script Brasil
  • 0

Explique-me o Main - Resolvido


Henzel

Pergunta

Pessoal, umas coisas ainda não estão claras em minha cabeça, estou lendo dois livros de c mas eles não explicaram direito sobre o comando VOID que é colocado antes do MAIN e dentro do parentese do mesmo..

void main (void)

não entendo a razão dele, está escrito que é para retornar 0, como assim???? xx

e já vi programas sem void nem int antes do main..

main()

{..}

então qual é a utilidade do void?

e qual é a utilidade de colocar variaveis dentro do parentese main(int var1, int var2), esses parametros, qual a diferença de coloca-los dentro do parentese?

Obrigado, e desculpe ai, é que estou aprendendo sozinho, e pensei que o livro iria explicar mais até agora não retornou no assunto --'...

Editado por Henzel
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Henzel,

na vdd void significa "vazio", "nada"... A presença dele é opcional.

Escrever void main (void) é a mesma coisa que escrever main(void), que é o mesmo que void main(), que é igual a main()... Dá tudo na mesma. A notação está lá mais por boa prática de programação. É a mesma linha de escrever apenas "return;" numa função que retorna void...

O void antes do nome de uma função significa que essa função não retorna nada. No caso da main que você viu com o void antes mas retornando 0, pode ser que esse código tenha sido escrito num ambiente que o processo precise retornar algo, Linux por exemplo (retorna 0 caso não haja erro e outro número caso haja).

Sobre os parâmetros da função main, ela só pode receber nenhum (main(void) ou simplesmente main()) ou 2 parâmetros. É padrão que esses argumentos, quando existem, sejam (int argc, char *argv[]). É que quando você chama o programa (mais comumente por linha de comando no Terminal do Linux ou no Prompt do DOS) você pode passar um ou mais argumentos para o programa. Por exemplo:

//codigo.c
#include <stdio.h>

int main (int argc, char *argv[]) {
    printf("Meu primeiro argumento foi: %s\n", argv[1]);
    return 0;
}

Se você compilar esse código e chamá-lo através do terminal:

$./codigo argumento1

Ou ainda no windows:

>codigo.exe argumento1

Na tela aparecerá:

Meu primeiro argumento foi: argumento1

Os argumentos da main são os argumentos que você passa para o programa ao executá-lo.

Observações:

1 - argc contará sempre o total de argumentos que foram passados

2 - argv[0] é sempre o nome do programa; os argumentos começam a contar mesmo a partir de argv[1], argv[2], ..., argv[n]

Editado por tucano
Link para o comentário
Compartilhar em outros sites

  • 0

main() é a função principal. É aquela chamada quando o programa é iniciado. Por default, ela retorna um inteiro, portanto, quando você vê uma declaração do tipo

main(){
É o mesmo que
int main(){
Declarar a função main() como void não é uma boa prática de programação (ao menos pelo que me foi ensinado). Sobre o que é void... void é um dos tipos do C. É um tipo 'vazio'. Ou seja, se você pretende fazer uma função que não retorne nada, deve declará-la como 'void'. Se não quiser passar nenhum argumento para ela, coloque 'void' entre os parênteses (embora a maioria coloque os parênteses vazios mesmo).
e qual é a utilidade de colocar variaveis dentro do parentese main(int var1, int var2), esses parametros, qual a diferença de coloca-los dentro do parentese?
main() pode receber dois parâmetros. Segue o protótipo:
int main(int argc, char *argv[])
O primeiro é um inteiro, que representa a quantidade de argumentos passados pela linha de comando. O segundo é um vetor que possui tais parâmetros. Para rodar um programa passando argumentos pela linha de comando, basta digitar tais argumentos após o local do arquivo. Exemplo:
C:\programa.exe -argumento1 -argumento2
Então, de forma resumida, a declaração de uma função é feita da seguinte maneira:
tipo_do_retorno_da_função nomeDaFunção(tipo variavel1, tipo variavel2, tipo variavel3);

Obviamente os parâmetros passados mudam de acordo com a necessidade.

Edit: tucano respondeu antes =/

Editado por mJi
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...