Observe que esta questão foi postada originalmente em 2009, antes que C ++ 11 fosse ratificado e antes que o significado da
autopalavra - 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 staticpalavra - 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 staticdentro 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 autopalavra-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 autovariável se comporta no escopo do programa? O que dizer de uma static autovariável no escopo do arquivo? Esta palavra-chave tem outra finalidade além de apenas ser completa ?