首页  >  文章  >  后端开发  >  如何获取 C 中当前的类名?

如何获取 C 中当前的类名?

Linda Hamilton
Linda Hamilton原创
2024-11-07 21:32:03865浏览

 How Can I Get the Current Class Name in C  ?

类名 FUNCTION 的宏等效

开发人员经常遇到需要使用以下方式访问当前函数名称的情况: C 中的 FUNCTION 宏。然而,用于访问类名的类似宏并不是立即显而易见的。

替代解决方案

虽然不存在与 FUNCTION 完全相同的内容类名、替代方法可以提供此信息。可以使用 typeid(*this).name() ,但它在静态方法调用中存在限制。

PRETTY_FUNCTION 和第三方宏

PRETTY_FUNCTION 宏返回函数和类名称。但是,它的使用特定于 GCC 编译器。

还可以利用第三方宏,例如 METHOD_NAMECLASS_NAME 宏来提取类和方法名称,如下面的示例代码所示:

inline std::string methodName(const std::string& prettyFunction) {
    ...
}

#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)

...

inline std::string className(const std::string& prettyFunction) {
    ...
}

#define __CLASS_NAME__ className(__PRETTY_FUNCTION__)

这些宏处理从 __PRETTY_FUNCTION__ 解析类和方法名称的复杂性,包括没有类的情况。

结论

虽然 C 缺少与 FUNCTION 直接等效的类名,但 PRETTY_FUNCTION 和第三方宏提供了访问这两种方法的可行替代方案和类名,保证代码在各种场景下的可维护性和可读性。

以上是如何获取 C 中当前的类名?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn