main(),void main( ),int main( )qual a diferencia [RESOLVIDO]

1. main(),void main( ),int main( )qual a diferencia [RESOLVIDO]

daniel rosario
daniel rosario

(usa Ubuntu)

Enviado em 28/01/2012 - 21:01h

ola turma da linguagem c tenho uma duvida muito boa, para deixa claro sou inciante na linguagem, eu uso o dec c++ para fazer meus programinhas baixo apostilas e algumas trazem esta diferença de sintaxe.

meus programas em c ñ compilam usando void main() e evito fazer codigo com esta sintaxe usando apenas main() e simplesmente funciona; porem meu professor faz codigos com void main e ainda existem apostilas com int main() qual a diferença e porque na versão mais nova do dev c ++ ñ funciona os programas do professor.

humildemente grato



  


2. Re: main(),void main( ),int main( )qual a diferencia [RESOLVIDO]

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 28/01/2012 - 22:00h

foxbit3r escreveu:

void main () está errado.

Nos livros de programação C para ambiente ms-dos 16 bits é comum vc encontrar código com "void main()".

Porém para ambiente unix/linux 32 ou 64 bits vc deve utilizar o "int main()".
Porque todo programa unix retorna algum valor para o SO.
Baseado nesse valor dá para determinar se um programa foi ou executado com sucesso.

Um exemplo é o comando ls.

se vc digitar ls e depois echo $? e for retornado zero, significa que o comando ls foi executado com sucesso.
Tudo que for diferente de zero é que deu erro.


Vale lembrar que int main() é a mesma coisa que main().
Por padrão retorna um inteiro.


3. Re: main(),void main( ),int main( )qual a diferencia [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 29/01/2012 - 01:19h

Olá !

É sempre bom usar essa sintax:

int main ()
{
// ...

return 0;
}

Também é bom lembrar que o valor de retorno de um programa pode ser usado por outro programa, mas isso não é muito utilizado.


4. Standard

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 29/01/2012 - 08:39h

Bom dia Daniel,

O primeiro conselho: Procure outro IDE, o Dev-C++ é para Windows. Se está no Linux, use softwares para Linux.

Sobre a sua pergunta, o standard suporta apenas dois protótipos:


int main()
int main(int argc, char* argv[])


Isso quer dizer que os programas do seu professor não são portáveis. Por favor, o informe. Apostilas contêm dezenas de erros, procure um livro, as chances de equívoco são reduzidas. ;-)

Abraço!


5. Re: main(),void main( ),int main( )qual a diferencia [RESOLVIDO]

White Hawk
WhiteHawk

(usa Ubuntu)

Enviado em 29/01/2012 - 10:17h

Bom dia.

Funções do tipo "void" não retornam nenhum valor. Isso quer dizer que elas são apenas procedimentos, são estáticos. Executam determinada ação e pronto.

O correto é utilizar a função "main" como inteira, pois o seu valor poderá indicar se o programa foi finalizado corretamente ou não.

Para entender como funciona o retorno de valores e funções, recomendo que leia livros sobre o assunto ou procure em sites especializados.

Veja: http://www.cplusplus.com/

Recomendo que utilize a IDE CodeBlocks. Você pode baixá-la aqui: http://www.codeblocks.org/

Abraço.


6. cplusplus.com

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 29/01/2012 - 13:11h

Oi Luiz,

O site cplusplus.com é uma boa referência, mas também contém alguns erros graves com respeito ao standard. Na maioria das vezes são imperceptíveis ao usuário final, mas é bom ficarem atentos. ;-)

Abraço!


7. Re: main(),void main( ),int main( )qual a diferencia [RESOLVIDO]

daniel rosario
daniel rosario

(usa Ubuntu)

Enviado em 29/01/2012 - 16:45h

galera muito boa as explicações graça a vcs entendi e tirei minhas duvidas obrigado.


8. Re: main(),void main( ),int main( )qual a diferencia [RESOLVIDO]

White Hawk
WhiteHawk

(usa Ubuntu)

Enviado em 29/01/2012 - 16:55h

julio_hoffimann escreveu:

Oi Luiz,

O site cplusplus.com é uma boa referência, mas também contém alguns erros graves com respeito ao standard. Na maioria das vezes são imperceptíveis ao usuário final, mas é bom ficarem atentos. ;-)

Abraço!


Boa tarde.

Julio, obrigado pelo toque. Qual das referências possui erros? A de C ou C++? Digo isso pois programo apenas em C.

Abraço.


9. C++

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 29/01/2012 - 17:15h

Luiz,

Sempre consultei as referências de C++, não sei se o site comete barbaridades com C. É mais difícil, pois essa linguagem é bastante estabelecida, são poucas alterações relevantes no standard. ;-)

C++ está passando por uma mudança radical, para você ter uma idéia, todos os livros disponíveis hoje estão completamente obsoletos. Rsrs.

Daniel,

Por favor marque o tópico como resolvido e se possível escolha o post [4] como melhor resposta.

Abraço!


10. Re: main(),void main( ),int main( )qual a diferencia [RESOLVIDO]

daniel rosario
daniel rosario

(usa Ubuntu)

Enviado em 30/01/2012 - 15:09h

julio a questão do main que eu mim referia era apenas na linguagem c ,continua valendo sua dica desta forma?


11. int main(void)

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 30/01/2012 - 22:13h

Oi Daniel,

Se não me engano, em C existe uma diferença na versão sem argumentos. Ao invés de int main(), um argumento void deve ser passado: int main(void).

No entanto, a versão com argumentos é a mesma para os dois standards:


int main(int argc, char* argv[])


Abraço!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts