「if」式の変数宣言: ルールの明確化
「if」式の条件内で宣言された変数は、疑問符でした。しばらくプログラマー。 C 標準では当初、これらの変数のスコープの概要が示されていましたが、括弧と複数の宣言に関してあいまいさが残りました。
提供された例では、変数宣言の周囲に括弧が使用されている場合、コンパイラはコンパイルに失敗します。
if((int a = Func1())) { // Fails to compile. }
この動作は、単一の条件内に複数の宣言がある場合にも当てはまりますが、宣言は条件自体の直前に置く必要があるというルールによるものです。括弧はこのルールを破ります。
しかし、C 17 の導入により状況は変わりました。
if (int a = Func1(), b = Func2(); a && b) { // Do stuff with a and b. }
今では、; を使用して括弧内で変数を宣言できるようになりました。宣言を条件から分離します。この機能強化により、「if」条件の柔軟性が拡張されます。
以上がC 17 では、「if」式の変数宣言のルールがどのように変更されましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。