宏 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中文网其他相关文章!