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

2007-02-27 Por tôpico Anderson P. Matos - LINHARES ON LINE
Ok Paulo, neste ponto você esta correto.

Abraços, um bom dia.

Att. 

 
Anderson P. Matos  
Analista de Suporte
Linhares Serviços On-Line
Tel: (27) 2103-8100
E-mail: [EMAIL PROTECTED]
-
Tel.: (27) 2103-8105 
Cel: (27) 9936-4186
E-mail: [EMAIL PROTECTED]  
Messenger: [EMAIL PROTECTED]
Skype: andersonpmatos

-Mensagem original-
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em
nome de Paulo Pires
Enviada em: sábado, 24 de fevereiro de 2007 23:28
Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
Assunto: Re: [FUG-BR] RES: C/C++

On 2/24/07, Anderson P. Matos - LINHARES ON LINE
[EMAIL PROTECTED] 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...

Obrigado pela lembrança.  Eu já trabalhei com compilador C para outras
arquiteturas e outros sistemas operacionais, e já fiz muito void
main() -- mas nunca um double main() -- , mas vale o recado para
que os outros saibam que em C é possível ter outros tipos de retorno
para main() em determinadas situações.

Entretanto, note que eu disse que era um erro em C++, que era a
linguagem do programa original, e disse explicitamente que não seria
indicado como erro em C.  Note também que não estamos falando de
CP/M-80 ou de alguma dispositivo embarcado usando microPIC, mas de
UNIX, onde um comando return dentro de main(), mesmo em C, retorna
ao sistema operacional um valor para ser informado como estado de
saída do processo, e que esse valor de estado é um inteiro.

-- 
Um abraço.
Paulo A. P. Pires

... Qui habet aurem audiat quid Spiritus dicat ecclesiis.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd



-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


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

2007-02-27 Por tôpico Anderson P. Matos - LINHARES ON LINE
Ei Paulo, eu ate achei engraçado quando você escreveu essa frase, posso
não ter entendido muito bem, mas o main não retornar um valor é
considerado um erro...percebi que durante dois anos que estudei C na
faculdade me passaram uma informaçao errada entao.

 PS. A função main não retornar um valor é considerado um ERRO
NÃO-FATAL.

Tudo bem, vamos acabar com esse topico por aqui.

Um bom dia de trabalho e uma otima semana.

Att. 

 
Anderson P. Matos  
Analista de Suporte
Linhares Serviços On-Line
Tel: (27) 2103-8100
E-mail: [EMAIL PROTECTED]
-
Tel.: (27) 2103-8105 
Cel: (27) 9936-4186
E-mail: [EMAIL PROTECTED]  
Messenger: [EMAIL PROTECTED]
Skype: andersonpmatos

-Mensagem original-
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em
nome de Paulo Pires
Enviada em: sábado, 24 de fevereiro de 2007 23:48
Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
Assunto: Re: [FUG-BR] RES: C/C++

On 2/24/07, gethostbyname [EMAIL PROTECTED] wrote:
 Bom, creio que ele deve estar se referindo ao padrão mais atual da
 linguagem, C99. O padrão ANSI já está meio obsoleto pelos padrões ISO
 C89 e C99.

Você está fazendo alguma confusão.  C89 é ANSI, cujo correspondente
ISO (praticamente idêntico, apenas recredenciado) é o C90.

 Teve um cara que liberou o C Completo e Total na rede um tempo atrás.
 Puxa, logo o livro do Herbert Schildt, o pior autor de todos os
tempos.

Não sei se é *o* pior, mas é um cara que claramente escreve sobre o
que ele acha que vai lhe render uns trocados.  É provável que o
compromisso dele seja mais com fazer dinheiro rapidamente do que com a
qualidade do que escreve.  Nessa linha, o mais lamentável é quando, ao
invés de ensinar a linguagem de programação a que se propõe na capa,
ele começa a fazer apologia de determinadas tecnologias e de certos
fabricantes de software (sobretudo do estado de Washington), talvez a
fim de dar impulso a outros de seus livros.

 PS. A função main não retornar um valor é considerado um ERRO
NÃO-FATAL.

Eu freqüentemente compilo com -Werror -Wall; existem motivos para
que o compilador emita warinings, ou eles não estariam lá.  Um exemplo
que volta e meia acontece comigo é usar = em lugar de ==; às vezes
é intencional e às vezes por distração ou erro de digitação, mas um
warning é bem-vindo nos dois casos.  Todos sabemos fazer e às vezes
somos forçados a fazer bacalhaus no código, mas também sabemos como
usar a linguagem para, de forma sintaticamente correta e
estilisticamente mais produtiva (no sentido de dar clareza que
facilite a manutenção de código no futuro), fazer calar qualquer
warning, mesmo quando se usa -pedantic.

-- 
Um abraço.
Paulo A. P. Pires

... Qui habet aurem audiat quid Spiritus dicat ecclesiis.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd



-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


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

2007-02-26 Por tôpico Ricardo Nabinger Sanchez
On Sun, 25 Feb 2007 12:59:53 -0300
Henrique Berenguel [EMAIL PROTECTED] wrote:

 Alguém conhece livro bom ou curso bom de c para unix?

Os livros dos pais do C são excelentes (2 livros).  Tem tanto original
(inglês) como traduções, e não são caros.  Autores: Brian Kernighan e Dennis
Ritchie.

-- 
Ricardo Nabinger Sanchez [EMAIL PROTECTED],wait4.org}
Powered by FreeBSD

  Left to themselves, things tend to go from bad to worse.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


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

2007-02-26 Por tôpico gethostbyname

A não ser que você queira escrever um driver ou ajudar no
desenvolvimento do kernel do FreeBSD, eu sugiro C++.

gethostbyname

Henrique Berenguel escreveu:
 Alguém conhece livro bom ou curso bom de c para unix?

 -Mensagem original-
 De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome
 de Paulo Pires
 Enviada em: domingo, 25 de fevereiro de 2007 00:57
 Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
 Assunto: Re: [FUG-BR] RES: C/C++

 On 2/25/07, gethostbyname [EMAIL PROTECTED] wrote:
   
 Essa exigência não é apenas da linguagem C++:

 *ISO/IEC 9899:1999 (E)(c)ISO/IEC*

 *5.1.2.2.1 Program startup*
 The function called at program startup is named main. The implementation
 declares no prototype for this function. It shall be defined **with a
 return type of int** and with no parameters:
 *int *main(void) { /*...*/ }
 or with two parameters (referred to here as argc and argv, though any
 names may be used, as they are local to the function in which they are
 declared):
 *int *main(int argc, char *argv[]) { /*...*/ }
 or equivalent [ver a Nota]; or in some other implementation-defined
 
 manner.
   
 *Nota*:
 Thus, int can be replaced by a typedef name defined as int,or the type
 of argv can be written as char ** argv, and so on.
 

 Eu não se se foi coisa da lista, mas aqui apareceu um monte de
 asteriscos (acho que você que usou negritos), fazendo parecer
 ponteiros; eu achei um PDF do padrão através do Google (talvez o mesmo
 que você achou, em
 http://www.nirvani.net.nyud.net:8090/docs/ansi_c.pdf), onde vi que
 eu não estava louco com um bando de ponteiros. :)

 Mas veja o ponto-e-vírgula antes de or some other
 implementation-defined manner.  Visualmente, acho que outra arrumação
 poderia aumentar mais a clareza, mas o que entendo é que uma
 implementação hosted (isto é, aquela que executa em um sistema
 operacional) pode optar entre retornar int _ou_ alguma outra maneira
 definida pela implementação.  Se optar por int, então deve aceitar
 int main(void){/*...*/} *e* int main(int argc, char *argv[]){/*...*/}.
  Mas que o fraseamento e a composição visual não ajudam na clareza,
 não ajudam mesmo.

   

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd