auto キーワード (ストレージ クラス指定子)
auto キーワードは、自動ストレージ クラスの変数を宣言します。
auto declarator ;
解説
Visual C++ 2010 より前のバージョンでは、auto キーワードは自動ストレージ クラスの変数を宣言します。 これは、有効期間がローカルであり、それが宣言されているブロック内でのみ表示される変数です。 自動ストレージ クラスは、ブロック スコープ変数の既定のストレージ クラスです。
auto キーワードのこの定義は、元の C++ 標準に準拠しています。 この動作を明示的に選択するには、/Zc:auto- コンパイラ オプションを使用します。
別のストレージ クラスで明示的に宣言しないすべてのブロック スコープ オブジェクトは暗黙的に "自動" と見なされるので、宣言で auto キーワードを使用するプログラマはほとんどいません。 つまり、次の 2 つの宣言は等価です。
// auto_keyword_storage.cpp
// Compile with /Zc:auto-
int main()
{
auto int i = 0; // Variable i is explicitly declared auto.
int j = 0; // Variable j is implicitly declared auto.
}
初期化
このドキュメントでは、自動ストレージ クラスで宣言された変数を自動変数と呼びます。 「初期化子」で説明されているように、自動変数の宣言には初期化子を含めることができます。 初期化子が指定されている場合、自動変数はそれがスコープに入るたびに初期化されます。 自動変数が既定で初期化されないため、自動変数をブロック内でを宣言するときや初期値を割り当てるときは初期化する必要があります。 初期化されていない自動変数の値は未定義です。