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