ホームページ > バックエンド開発 > C++ > 実行時に関数名を取得するにはどの C/C 識別子を使用する必要がありますか?

実行時に関数名を取得するにはどの C/C 識別子を使用する必要がありますか?

Patricia Arquette
リリース: 2024-12-13 00:13:14
オリジナル
763 人が閲覧しました

Which C/C   Identifier Should I Use to Get a Function's Name at Runtime?

関数名取得のための正しい識別子の選択

C と C は、実行時にアクティブな関数の名前を取得するためのいくつかの識別子を提供します: __PRETTY_FUNCTION__ 、__FUNCTION__、および __func__。このガイドでは、これらの識別子の違いを説明し、その使用法に関するガイダンスを提供します。

__func__:

"__func__" は、次の内容を含む文字配列を表す C99 で導入された識別子です。関数の名前。これは各関数内で暗黙的に定義されます。 C では、C 11 で func が導入され、実装定義の文字列が提供されました。

__FUNCTION__:

"__FUNCTION__" は、 gcc や Visual C などのコンパイラでサポートされる標準拡張子。ただし、サポートされている場合は func を使用し、func が使用できない場合にのみ FUNCTION を使用することをお勧めします。

__PRETTY_FUNCTION__:

「__PRETTY_FUNCTION__」は__FUNCTION__ に似た gcc 固有の拡張子。 C 関数の場合、署名を含む「きれいな」名前が表示されます。 Visual C にも同様の拡張子 __FUNCSIG__ があります。

使用する識別子の決定:

選択はコンパイラのサポートと必要な関数名の形式によって異なります:

  • 利用可能な場合は func を使用します (最新のバージョンでサポートされています)コンパイラー)
  • func が使用できない場合は、FUNCTION を使用します
  • 関数シグネチャを含む「きれいな」名前 (gcc または Visual Cのみ)ドキュメント:

__func__: C99 §6.4.2.2/1

    func
  • (C):C11 §8.4.1[dcl.fct.def.general]/8
  • __FUNCTION__、__PRETTY_FUNCTION__: gcc ドキュメント、「文字列としての関数名」__FUNCSIG__: MSDN ドキュメント、「定義済みマクロ」(ビジュアル C )

以上が実行時に関数名を取得するにはどの C/C 識別子を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート