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

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

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

Mensagem 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!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

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

Mensagem 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.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder