Ir para conteúdo
Fórum Script Brasil
  • 0

Global static c++ ???


josericardoc

Pergunta

Olá, eu estou com uma duvida que é a seguinte: se eu crio uma variável global, ela nunca precisa ser statica não é?? Porque de qualquer jeito um variavel global vai guardar seu valor também assim como a static , pelo fato de nunca está sendo reiniciada na função main apenas transformada e incrementada durante o programa. Tem algum caso onde o programador pode querer fazer uma variável global static?

Agradeço desde já pela ajuda, abraço a equipe do scriptbrasil.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Isso é tema de muita confusão pois existem vários casos onde podem ser usados a palavra static, tanto em C como em C++, dependendo de um caso ou outro tem diferentes efeitos.
No seu caso a variável global estática quer dizer que ela só será visível para funções que estejam no mesmo arquivo, si você tiver vários arquivos com funções, somente as funções que estiverem dentro desse mesmo arquivo conseguem enxergar essa variável, em outros arquivos ela é como si ela não existisse, em outras palavras, uma variável global estática é o contrario de uma variável global externa(extern). Em C as variáveis já são estáticas por default, por isso você não precisa por static nas globais, porem como falei antes, a questão é o âmbito de visão entre arquivos, é diferente das static que estão dentro das funções, pois essas são reservadas estaticamente em uma parte da memoria especial da memoria, preparada para variáveis estáticas, elas nunca estarão na pilha da função. 

Link para o comentário
Compartilhar em outros sites

  • 0

vlw vangodp, então no caso por isso que não tem diferença, em c elas são estáticas por default. Fiz várioss testes em situação usando apenas variáveis globais ao invés de uma estática dentro da função e não achei diferença entre o uso de uma ou outra, as duas guardam o valor da mesma forma. e a global estática e a global normal também não achei diferença entre elas se tratando de está usando apenas uma classe.

Editado por josericardoc
citar
Link para o comentário
Compartilhar em outros sites

  • 0

A única diferença é que a global será vista por todas as funções, porem a local será vista internamente na mesma função, ambas tem uma duração durante toda a vida do programa. Tudo depende do que você quer fazer.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...