Diferença entre variável local e global

Autor: Laura McKinney
Data De Criação: 1 Abril 2021
Data De Atualização: 17 Poderia 2024
Anonim
Diferença entre variável local e global - Tecnologia
Diferença entre variável local e global - Tecnologia

Contente


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.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Vantagens
  5. Desvantagens
  6. 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 dadosNão fornecidoFacilitado
VidaCriado 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âmetroNecessárioNão é necessário para variáveis ​​globais.
Mudanças em um valor variávelQualquer 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.

  1. 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".
  2. 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".
  3. 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.
  4. 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.