Em tópicos anteriores vi referência à Function Main().
Alguém poderia me explicar o que significa esse Main.
Obrigado.
Main()
Moderador: Moderadores
Prezado Colega
Todo programa principal em xHarbour deve se chamar MAIN(), é só isso, é uma praxe do xHarbour para criar uma referência. Exemplo :
Seu programa principal chama-se CONTABIL.PRG
No inicio dele deve estar assim...
Function Main()
cls
@ 00,00 say padc("Sistema Contabil",80)
...
...
...
No clipper isso não é obrigatório mas funciona também...
Eu mesmo não uso...
Até logo.
Marcelo
Todo programa principal em xHarbour deve se chamar MAIN(), é só isso, é uma praxe do xHarbour para criar uma referência. Exemplo :
Seu programa principal chama-se CONTABIL.PRG
No inicio dele deve estar assim...
Function Main()
cls
@ 00,00 say padc("Sistema Contabil",80)
...
...
...
No clipper isso não é obrigatório mas funciona também...
Eu mesmo não uso...
Até logo.
Marcelo
Me permita uma correção:Clipper escreveu:Todo programa principal em xHarbour deve se chamar MAIN()
Tanto para Clipper quanto para o xHarbour, Main é um nome simbólico qualquer. Não é como na linguagem C, onde o "starting point" do programa obrigatoriamente precisa ser main() (em minúscula). Tampouco uma função inicial é obrigatória em Clipper ou xHarbour. O início do programa é suposto. Inclusive, o xHarbour também dispõe de um switch /n, com opções acerca de como ele deve encarar a "starting procedure". O default é tipo 0, que significa que nenhuma procedure (function) inicial será exigida. Ou seja, se não tiver uma function inicial, não fará falta. Se tiver, o efeito será o mesmo.
Mas se quiser, faça um rápido teste compilando o seguinte fonte:
Código: Selecionar todos
?? "Hello, world!"
?
quitNote: admiti-se que é conveniente que cada bloco de código seja formalmente iniciado por uma function, com um nome qualquer. Mas não necessariamente Main().
Pergunta decorrente: "mas como o compilador vai saber, num projeto grande, onde está o início do programa?". Resposta (idêntica para o caso do Clipper): "pela ordem de compilação/encadeamento, o primeiro código do primeiro arquivo fonte encontrado será o início do programa". Se não fosse assim, o xHarbour não teria os aclamados 100% de retro-compatibilidade.
Em suma: function explícita não é obrigatória, mas opcional. Porém, a boa prática recomenda que se use.
[]'s
Maligno
http://www.buzinello.com/prg
Boa essa...
Eu sabia que no Clipper não era preciso, mas como não conheço de xHarbour (apesar de achar que não era preciso) fui pela cabeça dos que conhecem e como piolho me dei mal, bem feito para mim que fui responder uma coisa do qual não domino plenamente, mas fui induzido ao erro porque acreditei na resposta de um colega....
Vivendo e aprendendo...
Até logo.
Marcelo
Eu sabia que no Clipper não era preciso, mas como não conheço de xHarbour (apesar de achar que não era preciso) fui pela cabeça dos que conhecem e como piolho me dei mal, bem feito para mim que fui responder uma coisa do qual não domino plenamente, mas fui induzido ao erro porque acreditei na resposta de um colega....
Vivendo e aprendendo...
Até logo.
Marcelo


