As variáveis são classificadas em variáveis "locais" e "globais", que é o principal tópico de nossa discussão. Aqui a principal diferença entre uma variável local e uma global é que, uma variável local é declarada dentro de um bloco de funções, onde a variável global é declarada fora das funções no programa.
Vamos estudar mais algumas diferenças entre uma variável local e uma global, juntamente com um gráfico de comparação.
Gráfico de comparação:
Base para Comparação | Variável Local | Variável Global |
---|---|---|
Declaração | Variáveis são declaradas dentro de uma função. | Variáveis são declaradas fora de qualquer função. |
Escopo | Dentro de uma função, dentro da qual eles são declarados. | Durante todo o programa. |
Acesso | Acessado apenas pelas instruções, dentro de uma função na qual elas são declaradas. | Acessado por qualquer declaração em todo o programa. |
Vida | Criado quando o bloco de funções é inserido e destruído na saída. | Permaneça em existência durante todo o tempo em que seu programa estiver sendo executado. |
Armazenamento | Variáveis locais são armazenadas na pilha, a menos que especificado. | Armazenado em um local fixo decidido por um compilador. |
Definição de Variável Local
Uma variável local é sempre declarada dentro de um bloco de funções. Em C, uma variável local é declarada no início de um bloco de código. Em C ++, eles podem ser declarados em qualquer lugar no bloco de código antes de seu uso. Variáveis locais podem ser acessadas apenas pelas instruções escritas dentro de uma função na qual a variável local é declarada. Eles são seguros no sentido de que não podem ser acessados por nenhuma outra função do mesmo programa.
Variável local existe até que o bloco da função esteja em execução e, portanto, destruído após a execução sair do bloco. As variáveis locais perdem o conteúdo assim que a execução sai do bloco em que são declaradas.
A razão por trás disso é que as variáveis locais são armazenadas na pilha, a menos que seu armazenamento especial seja especificado. A pilha é dinâmica por natureza, e a mudança na localização da memória leva à razão pela qual a variável local não mantém seu valor assim que o bloco de uma função existe.
Nota:
No entanto, existe uma maneira de manter o valor de uma variável local, usando o modificador 'static'.
Definição de Variável Global
Uma variável global é declarada fora de todas as funções presentes em um programa. Ao contrário das variáveis locais, a variável global pode ser acessada por qualquer função presente em um programa. As variáveis globais não são muito confiáveis, pois seu valor pode ser alterado por qualquer função presente no programa.
Variáveis globais permanecem em existência até que todo o programa seja executado completamente. Variáveis globais mantêm seus valores até que o programa esteja em execução. A razão é que eles são armazenados em uma região fixa de memória, decidida pelo compilador.
Uma variável global é útil em situações em que várias funções acessam os mesmos dados. Usar um grande número de variáveis globais pode ser problemático, pois pode haver alterações indesejadas no valor de uma variável global.
Diferença chave entre variável local e global.
- Variáveis locais são chamadas de 'locais' porque são conhecidas apenas pelas instruções escritas em uma função dentro da qual elas são declaradas e não são conhecidas por nenhuma outra função presente fora daquele bloco de funções. No caso da variável global, eles são conhecidos por cada função presente em um programa; Portanto, eles são chamados de "globais".
- As variáveis globais mantêm seu valor até que o programa esteja na fase de execução, pois elas são armazenadas em um local fixo decidido pelo compilador. Variáveis locais são armazenadas na pilha; portanto, eles não retêm seu valor, pois a "pilha" é dinâmica por natureza, mas o compilador pode ser direcionado para reter seu valor, usando o modificador "estático".
- Se uma variável global e uma local forem declaradas com o mesmo nome, todas as instruções de um bloco de código no qual a variável local é declarada se referirão apenas a uma variável local e não causarão nenhum efeito em uma variável global.
- Uma variável local é destruída quando o controle do programa sai do bloco no qual a variável local é declarada. No entanto, uma variável global é destruída quando o programa inteiro é finalizado.
Conclusão:
As variáveis locais e globais são igualmente necessárias ao escrever o programa. Mas, declarar um grande número de variáveis globais pode ser problemático em um programa grande, pois pode causar alterações indesejadas em uma variável global; e seria difícil identificar qual parte de um programa fazia essa mudança. Portanto, deve-se evitar declarar variáveis globais desnecessárias.