関数ポインターとしての関数名: 設計理論
C では、関数名を関数ポインターとして使用することは、アドレスを適用することと同じです。関数名に演算子を付けます。この動作は、言語の他の部分と矛盾しているように見える可能性があり、その設計理論的根拠について疑問が生じます。
ANSI C90 理論的文書には、この設計上の決定についての洞察が記載されています。
(&f)(); // Explicit address-of operator f(); // Implicit conversion to function pointer (*f)(); // Deference of a function pointer (**f)(); // Deference twice (***f)(); // Deference three times
戻りコンテキストで関数型からポインター型への暗黙的な変換がないことについては、その説明は「」の概念にあります。戻り型の装飾。」 C では、関数の戻り値の型は関数のシグネチャの一部であり、変更できません。したがって、関数はそれ自体へのポインタを暗黙的に返すことはできません。
以上がC で関数名が関数ポインターとして使用されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。