12

ストレージ クラス識別子 auto の使用例?すべてのローカル変数がデフォルトで auto であることは理解しています。しかし、明示的に auto int a を書くことで違いが生じるのは何ですか?

4

4 に答える 4

11

厳密には違いはありません。

{
   auto int a;
   /* ... */
}

{
   int a;
   /* ... */   
}

同等です。

auto一般的な方法は、指定子を入れないことです。

于 2013-03-29T14:58:51.493 に答える
2

次の 2 つのケースが考えられます。

  1. autoがデフォルトであり、キーワードを明示的に追加しても何も達成されません
  2. autoは許可されていません (たとえば、グローバル変数で)。この場合、追加autoするとコードのコンパイルが妨げられます。
于 2013-03-29T15:01:36.670 に答える
2

現代の C (C89、C99、C11) では、autoキーワードは冗長です。意図を明示的にする (「これは非静的変数であり、私はそれを意味します!」) 以外に、それはもはや何の目的も果たしません。これは C の歴史の名残りであり、B から引き継がれていますが、entryキーワードが実質的に時代遅れになっているのと同じです。

人生で一度利用しました。これは、暗黙的な int と組み合わせて IOCCC エントリにありました。

 drive () { auto motive; ... }
于 2013-03-29T15:13:37.483 に答える