C は、現在実行中の関数の名前を取得するための FUNCTION マクロを提供します。同様に、開発者は、__CLASS__ に似た、クラス名を取得するための同等のマクロが存在するかどうか疑問に思うことがよくあります。
その答えは、C 言語の設計による代替手段を検討することにあります。以下に実行可能なオプションをいくつか示します。
カスタム マクロ: 開発者はカスタム マクロを定義して、必要な情報を抽出できます。例:
メソッド名の抽出の場合:
#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__) inline std::string methodName(const std::string& prettyFunction) { // Extract the method name from __PRETTY_FUNCTION__ ... }
クラス名の抽出の場合:
#define __CLASS_NAME__ className(__PRETTY_FUNCTION__) inline std::string className(const std::string& prettyFunction) { // Extract the class name from __PRETTY_FUNCTION__ ... }
これらのカスタム マクロは機能をエミュレートします。 CLASS のメソッドですが、クラス コンテキストのないメソッドやグローバル関数などの特殊なケースを処理するには慎重な考慮が必要です。
以上がC でクラス名を抽出するための __CLASS__ マクロはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。