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