首页 >后端开发 >C++ >C语言中如何获取当前类名?

C语言中如何获取当前类名?

Patricia Arquette
Patricia Arquette原创
2024-11-15 18:25:03300浏览

How to Get the Current Class Name in C  ?

CLASS 在 C 中等效

在 C 中,与提供的 FUNCTION 宏不同当前函数的名称,没有内置宏直接提供当前类的名称。

解决方案

正如提供的答案中提到的,使用 typeid(*this).name() 方法可以实现类似的功能。但是,此方法在静态方法中使用时有局限性。

对于静态方法和一般场景,可以使用使用宏的替代方法。一种方法涉及利用 PRETTY_FUNCTION 宏:

对于方法名称:

#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)

inline std::string methodName(const std::string& prettyFunction) {
    // Extract and return the method name
    ...
}

对于类名称:

#define __CLASS_NAME__ className(__PRETTY_FUNCTION__)

inline std::string className(const std::string& prettyFunction) {
    // Extract and return the class name
    ...
}

请注意,此方法依赖于 PRETTY_FUNCTION 宏,该宏特定于 gcc 等某些编译器。

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

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