Página 2 de 2

Variáveis LOCAL ou PRIVATE, compilar com /N e /W

Enviado: 31 Jan 2016 22:16
por microvolution
xiiiiiiiiiii, 9 anos se passaram...
Acho que não tem ninguém aqui pra me dar uma dica, nem benigno e nem muito menos Maligno rsrsrsrs...
Bom, se alguém aparecer, é melhor que criar outro tópico igual.

É o seguinte:
Após a migração já há um ano para harbour usando hmg 3.0.xx e agora também testando a gtwvg, o professor JQuintas sempre tem me ajudado e muito. Ele, ("na opinião dele") não usa nunca ou quase nunca variáveis públicas.
Até hoje não entendi bem, mas, sei que usa mais memória.
bom, então, estou querendo evitar de usar as PUBLICs.
Então, vem a pergunta:

No MAIN(), se usar variáveis LOCAL, como em qualquer outra função, só funcionará por ali. Se no MAIN uma variável do tipo LOCAL não for passada para alguma FUNCTION não será reconhecida dentro da função, mesmo ela sendo de dentro do MAIN?
Outra coisa:
- Dentro do MAIN() se declarar variáveis tipo PRIVATE, elas serão reconhecidas dentro das FUNCTIONs internas da MAIN correto?
- E nos outros módulos, as variáveis PRIVATE que estão dentro do MAIN() serão reconhecidas?

Se a resposta for sim, então, dá pra enganar o compilador e as variáveis que eram PUBLIC podem ser criadas como PRIVATE dentro do MAIN que serão reconhecidas em todos os módulos funções, etc... correto?

vlw pessoal!

Variáveis LOCAL ou PRIVATE, compilar com /N e /W

Enviado: 31 Jan 2016 22:30
por sygecom
Correto, mas PUBLIC ou PRIVATE ainda são cabíveis de erro, principalmente quando tem vários programadores no mesmo projeto, mais cedo ou mais tarde alguém em algum modulo pode criar uma variável igual ou atribuir um valor a mesma que foi criada lá começo do sistema(MAIN) e começar os problemas.

Nesse caso, não seria melhor você criar uma classe com todas essas variáveis definidas dentro ? e assim poder usar em qualquer parte do sistema.

Variáveis LOCAL ou PRIVATE, compilar com /N e /W

Enviado: 31 Jan 2016 23:23
por JoséQuintas
A questão não é usar ou não, a questão maior é ABUSAR, e usar até onde não deveria ser usado.

Tem variável que é melhor ficar em DBF, outras no registro do Windows, outras passar por referência, outras como PRIVATE mesmo, e outras como PUBLIC mesmo, e até classe pode ser interessante, pra transformar TODAS as variáveis públicas em uma única variável.

Agrupando tudo, já vai ter uma visão melhor sobre qual decisão tomar depois.

Eu diria até o seguinte: mais importante até do que isso, é ajustar os fontes pra compilar usando -w3 -es2
Mesmo usando variáveis PUBLIC e PRIVATE, já vai tirar muito proveito disso.
E vai te dar uma visão melhor de onde seria interessante mexer.

Mas vai dar trabalho... é bom saber disso.
Dependendo do aplicativo, pode demorar meses pra conseguir compilar por completo.
Lógico, não é obrigado a fazer tudo de uma vez, pode ativar/desativar -w3 -es2 sempre que quiser/precisar.