最も厄介な解析ルールを理解する
最も厄介な解析 (MVP) は、解析中に予期しない動作を引き起こすことが多い C のルールです。 。次のコード スニペットを考えてみましょう:
A a( A() );
このスニペットは 2 つの方法で解釈できます:
C 標準によれば、このコードは後者として解釈されます。しかし、なぜそうなるのでしょうか?
標準の背後にある理由
MVP が存在しない場合、次のコードは次のように解釈されるため、関数の宣言があいまいになります。メソッド宣言ではなく変数定義:
A foo();
この曖昧さを避けるために、MVP では次のように解釈できるすべてのものが必要です。宣言は宣言として解釈されます。つまり、変数定義、関数宣言、またはクラス定義として解釈できるコードはすべて、そのように解釈されます。
この一貫性により、解析プロセスが簡素化され、コンパイラーが意図した意味を識別しやすくなります。コードの。また、これは、「すべての式は宣言または式である」という C の一般原則とも一致します。
結論
一方、MVP は予期しない解析結果を引き起こす可能性があります。 、C 構文に一貫性と明確さを提供します。 MVP は、宣言として解釈できるすべてのコードが宣言として解釈されるようにすることで、曖昧さを回避し、コンパイラーの解析プロセスを簡素化します。
以上がC の最も厄介な解析が「A a(A());」を解釈するのはなぜですか関数宣言として?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。