Questão:
[LINGUAGEM C] Qual a diferença entre "void main()" e "int main()"?
?
2013-05-08 11:38:52 UTC
Sei que o "main" é a parte principal do programa e onde o programa de fato começa... e sei também que "void" significa vazio, e "int" significa numeros inteiros...
Mas na prática, quando construimos um programa, quando devemos usar void e quando devemos usar int?
Quero respostas claras, diretas e fáceis de entender...sem muito blá blá blá técnico ou ctrl+c+v de foruns e wikipedia, pois se quisesse respostas assim, não precisaria perguntar aqui.
Quatro respostas:
Osvaldo
2013-05-08 13:51:48 UTC
Em C trabalhamos com funções e uma função sempre retorna alguma coisa.

Ao definirmos uma função sempre especificamos o tipo do valor de retorno (um int, um char, um ponteiro, etc) mas, quando não estamos interessados no que será retornado podemos especificar o tipo de retorno void (repare que esta forma de função tenta simular o que é usualmente conhecido por procedimento).



No caso específico da main muitas vezes o chamador (provavelmente o S.O.) pode necessitar saber se a execução do programa ocorreu com ou sem erros (particularmente quando parte de um shell script) e para isso o valor retornado pelo programa é a solução usual.



O usual é presumir que um código de retorno zero indica uma execução bem sucedida e um valor diferente de zero uma execução mal sucedida.
2013-05-08 11:58:37 UTC
Esse "int"(inteiro) ou "void"(nulo) em função, seja ela c ou c++, server para indicar o tipo de dado que a função retornará. Tenho isso em mente, veja os exemplos:



void soma(int x, int y); // uma função que recebe dois número inteiros(x, y), mas não retorna nada.



int soma(int x, int y); // agora sim, a função recebe (x, y) faz alguma alteração e retorna algum resultado.



Quando digo retorno, estou falando do uso do uso de "return" dentro da função.



Exemplo real:



int soma(int x, int y) return x + y; // retorna o resultado da soma dos números inteiros

void soma(int x, int y) return; // não faz nada de útil.



Coisas que você tem que saber para entender o que foi explicado:

- O que é uma função

- O que são parâmetros de uma função

- Quais os tipos de dados(como inteiros, char) existem na linguagem em questão

- Como uma função retorna dados(no caso usando "return").

- O que quer dizer "escopo de dados"



Se você não quer trabalhar com coisas técnicas então mude profissão.
Miguel
2013-05-08 12:33:48 UTC
a função void main() - indica que a função main() não tem um tipo definido, mas é restrita da linguagem C.



a função int main() - indica que a função main() será inicializada como variável
Gustavo
2013-05-08 12:11:20 UTC
So completando, ou corrigindo uma coisa que o alex falou...



Void eh considerado uma procedure e int um function...



Ou seja, uma eh funçã e outra procedimento....


Este conteúdo foi postado originalmente no Y! Answers, um site de perguntas e respostas que foi encerrado em 2021.
Loading...