sábado, 12 de abril de 2008

Qualificadores de uma variável - static


Começo aqui uma série de artigos pequenos sobre qualificadores de uma variável.

Ao declarar-se uma variável, o comportamento dela depende do "qualificador" da variável.

A declaração de uma variável segue sempre o seguinte esquema:

[<qualificador>] <tipo> <nome>;
Ex.: static int x;

Os principais qualificadores são: static, volatile, const, extern e register. Vamos começar com o primeiro:

Variáveis Estáticas :

Faz com que a variável assuma uma única posição na memória, e essa posição não é assumida por outra variável durante o programa, ou seja, essa variável é como uma variável global, porém acessada somente pela função que a declarou, e não perde o seu valor entre chamadas de função.

Exemplo:
Preciso de um contador de acessos a uma classe. Declaro então, dentro da classe (chamada de X) uma variável estática: static unsigned int contador;

Essa variável deverá ser inicializada ANTES de entrar no MAIN, ou seja, ela precisa iniciar com um valor. Então, fora da função main, declara-se:
unsigned int X::contador = 10;
Isso faz com que o compilador gere um código de inicialização da variável contador antes de executar o main, carregando-o com o valor definido.


Nenhum comentário: