Clipper escreveu:Todo programa principal em xHarbour deve se chamar MAIN()
Me permita uma correção:
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:
Não há a informação explícita de função. Ainda assim, seu executável será montado.
Note: 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