この質問は、C ++ 11が承認される前、および
autoキーワードの意味が大幅に変更される前の2009年に最初に投稿されたことに注意してください。提供された回答は関連しています、C ++ 03の意味(auto指定されたストレージクラスである)にのみ、C ++ 11の意味(auto自動型推論)にしません。C ++ 11をいつ使用するかについてのアドバイスを探している場合auto、この質問はその質問とは関係ありません。
staticブロックスコープの外で宣言された変数は暗黙的にグローバルであるため、長い間、Cでキーワードを使用する理由はないと思っていました。次に、変数をstaticブロックスコープ内として宣言すると永続的な期間が与えられ、ブロックスコープ外(プログラムスコープ内)で宣言するとファイルスコープ(そのコンパイルユニットでのみアクセス可能)になることがわかりました。
したがって、これにより、私が(おそらく)まだ完全には理解していないキーワードが1つだけauto残ります。それはキーワードです。「ローカル変数」以外の意味はありますか?あなたがそれを使いたいと思うところならどこでもあなたのために暗黙のうちに行われていないことは何ですか?auto変数はプログラムスコープでどのように動作しますか?static autoファイルスコープの変数はどうですか?このキーワードには、完全を期すために存在する以外の目的がありますか?