ホームページ >バックエンド開発 >C++ >C 17 では、「if」式の変数宣言のルールがどのように変更されましたか?

C 17 では、「if」式の変数宣言のルールがどのように変更されましたか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-13 16:30:13616ブラウズ

How Has C  17 Changed the Rules for Variable Declaration in `if` Expressions?

「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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。