違いを理解する: PRETTY_FUNCTION__、__FUNCTION__、__func
プログラミングでは、現在の関数に関する情報にアクセスすると、デバッグ、ロギング、その他の目的に役立ちます。 C および C で一般的に使用される 3 つの識別子 (__PRETTY_FUNCTION__、__FUNCTION__、および __func__) がこの機能を果たします。それぞれは理解する価値のある独自の特性を持っています。
__func__: C99 の標準識別子
C99 で定義されている func は暗黙的に宣言されています。使用される関数の名前を含む文字配列に展開される識別子。宣言された識別子として、func はプリプロセッサ マクロとは異なる動作をします。
__FUNCTION__: 先行標準拡張
などの C コンパイラで広くサポートされています。 gcc と Visual C の FUNCTION は厳密には一部ではありませんC規格の。通常、__func__ と同様に動作しますが、コンパイラ間で不一致が存在する可能性があります。
__PRETTY_FUNCTION__: GCC 拡張機能
PRETTY_FUNCTION は gcc 固有です。 __FUNCTION__ に相当する拡張子。ただし、C 関数の場合は、関数のシグネチャを含む「きれいな」名前が返されます。
正しい識別子の選択
どの識別子を使用するかは、主に以下に依存します。サポートと機能の要件:
特定のコンパイラのドキュメントを参照することも重要です。 FUNCTION や __PRETTY_FUNCTION__ などの非標準拡張子。たとえば、Visual C では、__FUNCSIG__.
などの同様の拡張機能が提供されています。以上が「__PRETTY_FUNCTION__」、「__FUNCTION__」、「__func__」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。