Jump to content
Fórum Script Brasil
  • 0

Global static c++ ???


josericardoc
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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.

Edited by josericardoc
citar
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...