Observe que esta questão foi postada originalmente em 2009, antes que C ++ 11 fosse ratificado e antes que o significado da
auto
palavra - chave fosse drasticamente alterado. As respostas fornecidas referem-se apenas ao significado de C ++ 03auto
- sendo uma classe de armazenamento especificada - e não ao significado de C ++ 11auto
- de dedução automática de tipo. Se você está procurando conselhos sobre quando usar o C ++ 11auto
, esta questão não é relevante para aquela questão.
Por muito tempo, pensei que não havia razão para usar a static
palavra - chave em C, porque as variáveis declaradas fora do escopo do bloco eram implicitamente globais. Então descobri que declarar uma variável como static
dentro do escopo do bloco daria a ela uma duração permanente, e declarar fora do escopo do bloco (no escopo do programa) daria a ela o escopo do arquivo (só pode ser acessado naquela unidade de compilação).
Portanto, isso me deixa com apenas uma palavra-chave que eu (talvez) ainda não entendo completamente: a auto
palavra-chave. Existe algum outro significado para isso além de 'variável local?' Alguma coisa que ele faz que não seja implicitamente feito para você, onde quer que você queira usá-lo? Como uma auto
variável se comporta no escopo do programa? O que dizer de uma static auto
variável no escopo do arquivo? Esta palavra-chave tem outra finalidade além de apenas ser completa ?