Mas se você necessitar o acesso à variável de todas as funções na lima de fonte inteira, isto lata feita também com o keyword de estática, mas pondo a definição fora de todas as funções. Por exemplo:
#include <stdio.h>
static int num = 10; /* ser acessível da lima de fonte inteira */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
E há também os casos onde uma variável necessita ser acessível do programa inteiro, que pode consistir em diversas limas de fonte. Isto está chamado um variável global e deve ser evitado quando não se requer.
Isto é feito também pondo a definição fora de todas as funções, mas sem usar o keyword de estática:
#include <stdio.h>
int num = 10; /* ser acessível do programa inteiro! */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
Há também o keyword extern, que é usado para variáveis globais de acesso em outros módulos. Há também alguns qualificadores que você pode adicionar às definições variáveis. O mais importante delas é const. Uma variável que seja definida porque o const não pode ser modificado.
Há dois mais modificadores que são usados mais menos geralmente. O modificador temporário e do registo. O modificador temporário requer o compilador alcançar realmente a variável cada vez que se lê. Não pode optimize a variável pondo a em um registo ou assim. Isto é usado principalmente para multithreading e interrupção que processam as finalidades etc.
O modificador do registo pede o compilador optimize a variável em um registo. Isto é somente possível com auto variáveis e em muitos casos o compilador pode melhorar seleto as variáveis a optimize em registos, assim que este keyword é obsolescent. A única conseqüência direta de fazer um registo variável é que seu endereço não pode ser feito exame.
A tabela de variáveis, dada na página seguinte descreve a classe do armazenamento do tipo cinco de classes do armazenamento.
Na tabela nós vemos que o keyword extern está colocado em duas fileiras. O keyword extern é usado nas funções declarar uma variável externa de estática que seja definida em outra parte.
Classe variável do armazenamento |
Definido como |
Espaço |
Classe |
Keyword |
Automático |
O Keyword é opcional |
Provisório |
Em uma função |
Local |
De estática |
de estática |
Provisório |
Em uma função |
Local |
Registo |
registo |
Provisório |
Em uma função |
Local |
Externo |
Opcional |
Permanente |
Fora de uma função |
Global (todas as limas) |
Externo |
De estática |
Permanente |
Fora de uma função |
Global (uma lima) |
|