[FUG-BR] RES: C/C++

Diego Aranha iamscared em gmail.com
Sábado Fevereiro 24 07:47:08 BRT 2007


Acho que ele estava se referindo ao padrão ANSI:

http://www.delorie.com/djgpp/v2faq/faq22_25.html

E todos nós escrevemos código que respeita os padrões, certo? :)

--
Diego Aranha

On Saturday 24 February 2007 11:40, Anderson P. Matos - LINHARES ON LINE 
wrote:
> Paulo, a função main nem sempre deve retorna um valor, somente se você
> quiser, quando a função começa com void, significa que não retorna valor
> nenhum, e ainda você falou que a função main DEVE retornar um valor
> inteiro, isso também esta errado, a função pode retornar um char, float,
> double, usigned float...e mais um monte...
>
> Att.
>
>
> Anderson P. Matos
> Analista de Suporte
> Linhares Serviços On-Line
> Tel: (27) 2103-8100
> E-mail: suporte em linharesonline.com.br
> ---------------------------------------------------------
> Tel.: (27) 2103-8105
> Cel: (27) 9936-4186
> E-mail: anderson em linharesonline.com.br
> Messenger: modelobesta em hotmail.com
> Skype: andersonpmatos
>
> -----Mensagem original-----
> De: freebsd-bounces em fug.com.br [mailto:freebsd-bounces em fug.com.br] Em
> nome de Paulo Pires
> Enviada em: sexta-feira, 23 de fevereiro de 2007 08:00
> Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
> Assunto: Re: [FUG-BR] C/C++
>
> On 2/21/07, Rodrigo Ferreira <rsferreira em vipway.com.br> wrote:
> > Bom dia lista, venho tentando a algum tempo compilar/rodar arquivos .c
>
> e
>
> > .cpp, porem não obtive sucesso, antes de migrar para o FreeBSD eu
> > utilizava o turbo c++ no win, e agora no Free estou tentando usar o
> > gcc/g++, só que no programa mais simples que estou tentando fazer
> > aparece erro.
> >
> > Programa teste:
> >
> > #include "/usr/include/stdio.h"
> > #include "/usr/include/conio.h"
> >
> > void main (void)
> > {
> > puts ("Alo Mundo");
> > getch();
> > }
> >
> > dai quando eu dou g++ teste.cpp, aparece esses erros:
> > teste.cpp:2:32: /usr/include/conio.h: No such file or directory
> > teste.cpp:5: error: `main' must return `int'
> > teste.cpp: In function `int main(...)':
> > teste.cpp:7: error: `getch' undeclared (first use this function)
> > teste.cpp:7: error: (Each undeclared identifier is reported only once
> > for each function it appears in.)
>
> Um dos erros que eu ia apontar já foi apontado pelo compilador C++ (em
> C não seria indicado como erro): a função main() deve retornar um
> valor inteiro (int), de modo que tem que ser declarada como "int
> main()" ou "int main(int argc, char **argv)" (ou ainda "int main(int
> argc, char *argv[])").  A isso está ligado ou outro erro no seu
> programa, mas que não está indicado acima: para sair da função que
> retorna int, você tem obrigatoriamente que ter um comando "return
> valor;", onde "valor" é uma expressão com valor inteiro (geralmente --
> especialmente no UNIX -- main() retorna 0 quando é bem sucedido), ou
> uma chamada "exit(valor);", onde "valor" também é inteiro.
>
> Quando você está incluindo arquivos de cabeçalho da biblioteca padrão,
> a convenção é usar '#include <cabeçalho.h>', ao invés de '#include
> "cabeçalho.h"'.  Esta última forma, usando aspas, é usada para
> arquivos de cabeçalho criados pelo próprio programador, para
> distingüi-los dos cabeçalhos padronizados.  Também não é usual colocar
> o caminho completo dos arquivos, especialmente quando se está usando
> cabeçalhos da biblioteca padrão (com <>, e não com aspas, pois o
> compilador sabe como encontrá-los).
>
> Como outros já disseram, conio.h não é um cabeçalho padrão e a função
> getch(), que seria declarada nesse cabeçalho específico dos
> compiladores da Borland, também não é comumente aceita no UNIX (pelo
> menos não com o mesmo sentido que teria no compilador da Borland).
> Principalmente enquanto você está aprendendo, procure aprender a
> linguagem padrão, ao invés de uma implementação específica.
>
> Outra coisa: seu arquivo indica programa em C++, mas o código que você
> escreveu é C.  Não que esteja estritamente errado, mas a minha
> recomendação pessoal é que se você vai usar apenas C em um módulo de
> programa, use o compilador C (costuma ser mais rápido) e coloque nos
> arquivos a extensão ".c", ao invés de ".cpp" ou ".cc".  Ou, então,
> aprenda logo C++ através de exemplos usando recursos próprios do C++,
> se quiser usar os recursos que essa linguagem oferece antes de ficar
> "viciado" em C puro e simples.


Mais detalhes sobre a lista de discussão freebsd