Diferença entre variável local e global
Contente
- Gráfico de comparação:
- Definição de Variável Local
- Definição de Variável Global
- Vantagens
- Desvantagens
- Conclusão:
Como discutimos anteriormente, uma variável é um nome, dado a um local de memória, e deve ser declarado antes de ser usado. Em C, todas as variáveis são declaradas no início do programa. No C ++, as variáveis podem ser declaradas, a qualquer momento, antes de serem usadas nas instruções.
As variáveis são classificadas nas variáveis "local" e "global", que é o principal tópico de nossa discussão. Aqui, a principal diferença entre a variável local e a global é que uma variável local é declarada dentro de um bloco de funções. Por outro lado, 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
- Definição
- Principais diferenças
- Vantagens
- Desvantagens
- Conclusão
Gráfico de comparação:
BASE DE 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. |
Valor | A variável local não inicializada resulta no armazenamento do valor do lixo. | A variável global não inicializada armazena zero por padrão. |
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. |
Partilha de dados | Não fornecido | Facilitado |
Vida | Criado quando o bloco de funções é inserido e destruído na saída. | Permanece em vigor durante todo o tempo que seu programa está sendo executado. |
Armazenamento | Variáveis locais são armazenadas na pilha, a menos que especificado. | Armazenado em um local fixo decidido por um compilador. |
Passagem de parâmetro | Necessário | Não é necessário para variáveis globais. |
Mudanças em um valor variável | Qualquer modificação implícita em uma variável local não afeta as outras funções do programa. | As mudanças aplicadas na variável global de uma função refletem as mudanças em todo o programa. |
Definição de Variável Local
UMA variável local é sempre declarado 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 do bloco de código antes de serem usados. As variáveis locais podem ser acessadas apenas pelas instruções escritas dentro de uma função na qual as variáveis locais são declaradas. Eles são seguros no sentido de que não podem ser acessados por nenhuma outra função do mesmo programa.
A variável local existe até que o bloco da função esteja em execução e, assim, destruído após a execução sair do bloco. As variáveis locais perdem seu 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 alteração na localização da memória leva ao motivo pelo qual a variável local não retém seu valor assim que o bloco de uma função existe.
Nota:
No entanto, existe uma maneira de reter o valor de uma variável local usando o modificador "estático".
Definição de Variável Global
UMA variável global é declarado fora de todas as funções presentes em um programa. Diferentemente 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.
Eles permanecem em existência até que todo o programa seja executado completamente. As variáveis globais retêm seus valores até que o programa esteja em execução. O motivo é que eles são armazenados em uma região fixa da memória, decidida pelo compilador.
Uma variável Global é útil em situações em que várias funções estão acessando os mesmos dados. O uso de 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.
- As variáveis locais são chamadas de 'local' porque são conhecidas apenas pelas instruções escritas em uma função na qual são declaradas e desconhecidas por qualquer outra função presente fora desse bloco de funções. No caso de uma variável global, elas são conhecidas por todas as funções presentes em um programa; portanto, eles são chamados de "globais".
- As variáveis globais retêm seu valor até o programa estar na fase de execução, pois 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 variável 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 efeito a 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.
Vantagens
Variável local
- O principal benefício de uma variável local é que não há alteração acidental dos dados. A variável é declarada dentro de um bloco e esse bloco de código usa a variável e evita efeitos colaterais indesejáveis.
- A variável local consome memória por um período limitado do período, somente quando o bloco que contém a variável é executado.
Variável global
- Variáveis globais são muito úteis quando você está lidando com várias funções no programa que manipulam os mesmos dados.
- As mudanças que precisavam ser aplicadas em todo o programa seriam mais fáceis através da implementação de uma variável global.
- Podemos acessar de qualquer lugar ou através de qualquer função aleatória do programa.
Desvantagens
Variável local
- O escopo da variável local é restrito.
- Proíbe o compartilhamento de dados.
- Eles não conseguem reter os dados entre as chamadas porque variáveis locais são geradas e removidas a cada entrada e saída do bloco. No entanto, o modificador estático pode ser usado para manter os valores.
Variável global
- O uso de um grande número de variáveis globais pode resultar na geração de erros de programa.
- O principal problema que isso causa é a ocorrência acidental das alterações devido às variáveis globais disseminadas ao longo do programa.
- Também poderia surgir a necessidade de realizar a refatoração de código, que é um processo muito extenso em que todo o código do programa é reestruturado.
Conclusão:
As variáveis locais e globais são necessárias e igualmente necessárias ao escrever o programa. No entanto, declarar um grande número de variáveis globais pode ser problemático em um programa massivo, pois pode causar alterações indesejadas em uma variável global; e seria difícil identificar o que parte de um programa fez essa mudança. Portanto, deve-se evitar declarar variáveis globais desnecessárias.