Página 2 de 2
Conhecimentos indispensáveis - seja Clipper ou Harbour
Enviado: 07 Fev 2017 09:54
por Pablo César
JoséQuintas escreveu:Na função, o conteúde começou em zero, e foi somando um. Mas não foi zerado a cada chamada, a função "lembrou" do valor anterior.
Sim... tem razão. Muito bom isso.
JoséQuintas escreveu:Não é igual PUBLIC, porque SÓ A FUNÇÃO enxerga essa variável.
Nem igual ao LOCAL que sempre zeraria o valor... entendi.
Muito obrigado Mr. Quintas. Pois é justamente isso que vi no exemplo do Krzysztof ao igual do seu que você agora explicou o comportamento.
Pois a simples vista não parecia que teria esse comportamento (de guardar esse valor de dentro das sub-funções). Valeu !
Mr. Quintas você é muito bom nas suas explicações e tem um aguçado sentido nos seus análises...
(it's good to have you in our community)
:{
Conhecimentos indispensáveis - seja Clipper ou Harbour
Enviado: 07 Fev 2017 10:03
por rubens
Bom dia...
Agora ficou bem claro...
É bem interessante sim... principalmente por ser acessada somente na função...
Valeu Quintas...
Rubens
Conhecimentos indispensáveis - seja Clipper ou Harbour
Enviado: 07 Fev 2017 11:35
por JoséQuintas
O mais importante é o seguinte:
Isso poderia ser feito com uma variável PUBLIC, mas todos os seus fontes dependeriam dela.
Não poderia alterar o nome nunca, a variável ficaria presa aos fontes do aplicativo, e os fontes do aplicativo presos ao nome da variável.
Teria que declarar a variável em todos os fontes pra funcionar a compilação -w3 -es2
Significa que se dá trabalho compilar com -w3 -es2, talvez seja o compilador te avisando pra melhorar alguma coisa.
Usando desse jeito, função e variável STATIC, os fontes nem sabem que a variável existe, apenas chamam a função.
Mais fácil de mexer nos fontes.
E se errar o nome, que é a função, a linquedição já vai te avisar, porque vai dizer que a função não existe.
Não parece, mas uma simples definição de variável pode facilitar muito num projeto.
Conhecimentos indispensáveis - seja Clipper ou Harbour
Enviado: 07 Fev 2017 21:58
por Claudio Soto
Pablo, en este ejemplo cambia la variable static por una pública y vas a ver que funcionan igual, porque mantiene el valor de la última llamada a la funcion, la diferencia es que con static te aseguras que la variable no se le asigne valores fuera de la funcion, en cambio con la public podes cambiar su valor fuera y dentro de la funcion. Esto último es mas peligroso obviamente por el conflictivo en el nombre de variables y por la dificultad en el desarrollo de rutinas generales
En el ej es necesario que sea static porque la variable actúa como flag flipflop, y por lo tanto necesita recordar el último valor que se le asigno, si la cambias por local siempre va a ser .t., en cambio con static se inicia con .t. pero en cada llamado se invierte el valor, es decir fluctúa el valor entre t y f entre cada llamada.
PD: cuando poste esto no vi que ya se había contestado, I'm sorry Pablo.
Conhecimentos indispensáveis - seja Clipper ou Harbour
Enviado: 07 Fev 2017 22:18
por Pablo César
Entiendo. Muy bueno está el STATIC.
Pena que lo asimilé ahora de viejo...
Claudio Soto escreveu:PD: cuando poste esto no vi que ya se había contestado, I'm sorry Pablo.
No hay problemas Claudio. Me vino bien tu comparación. Nunca está demás.
Conhecimentos indispensáveis - seja Clipper ou Harbour
Enviado: 22 Fev 2017 10:25
por Heero
Agradecido!! :{ :{