PRETTY_FUNCTION__、__FUNCTION__、__func の違いをナビゲートする
コーディングの領域では、次のことを理解することが重要です3 つの識別子の区別: __PRETTY_FUNCTION__、__FUNCTION__、および __func__。それぞれが独自の属性とドキュメントを保持しており、目的の結果に応じて選択に影響します。
func
C99 で導入された func は、関数のスコープ内で現在の関数の名前にアクセスするための簡単なソリューションを提供します。これは、装飾されていない関数名を含む文字配列に展開されます。この識別子は C でも注目を集めており、C 11 では「実装定義の文字列」という少し異なる定義で追加されました。
Exploring FUNCTION
特定の C コンパイラは、FUNCTION をサポートします。標準以前の拡張機能ですが、これだけに依存することはお勧めできません。 func サポートがないコンパイラーの場合、標準化された対応物と比較して制限はありますが、FUNCTION が代わりとして機能します。
Enter PRETTY_FUNCTION
__PRETTY_FUNCTION__ は、gcc 固有の拡張機能であり、__FUNCTION__ と同様に動作します。ただし、C 関数のコンテキストでは、関数シグネチャを備えた関数名の拡張バージョンが表示されます。 Visual C は、__FUNCSIG__ で同等の代替手段を提供しますが、微妙な違いがあります。
ドキュメントと可用性
非標準マクロについては、それぞれのコンパイラのドキュメントを参照することが賢明です。 。 Visual C 拡張機能については、MSDN の C コンパイラの「定義済みマクロ」で詳しく説明されていますが、gcc 拡張機能についてはドキュメント ページ「文字列としての関数名」で説明されています。
正しい識別子の選択
適切な識別子の選択は、目的の結果とコンパイラによって異なります。 support.
理解することでこれらの識別子のニュアンスを理解すると、その力を効果的に利用して、コーディングに必要な関数関連の情報を取得できます。努力します。
以上が`__PRETTY_FUNCTION__`、`__FUNCTION__`、および `__func__` の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。