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. -- 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