最も厄介な解析のパラドックス: C における解析の曖昧さ
C における「最も厄介な解析」とは、次のような構文上の曖昧さを指します。言語構造の予期しない解釈につながります。次のコード スニペットを考えてみましょう。
A a( A() );
C 標準によれば、このコード スニペットは、型 A のオブジェクトを返す名前のない引数を取る a の関数宣言として解釈されます。ただし、多くのプログラマは直感的に次のことを期待します。これは、A の匿名インスタンスを取得する a の変数定義になります。
C 標準ではなぜこれを要件にしたのですか?理論的根拠を調べてみましょう:
要約すると、C には、次のことを保証するための「最も厄介な解析」要件が存在します。一貫した関数宣言、キーワードのオーバーロードの回避、明確なコード解釈の促進、歴史的な前例の維持。場合によっては予期せぬ結果につながる可能性がありますが、明確で予測可能なプログラミング言語を促進する上では、その利点が欠点を上回ります。
以上がC が「A a(A());」を解釈するのはなぜですか変数定義ではなく関数宣言として?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。