可以用来判断当前函数是c函数还是oc方法的宏
时间: 2023-12-23 19:05:30 浏览: 140
查询c语言函数的小工具
在Objective-C中,可以使用__PRETTY_FUNCTION__宏来获取当前函数的名称,包括函数的返回值、函数名和参数类型等信息。通过判断该宏定义的字符串中是否包含“objc_”前缀,可以判断当前函数是C函数还是Objective-C方法。
例如,下面的代码演示了如何使用__PRETTY_FUNCTION__宏来判断当前函数是C函数还是Objective-C方法:
```objective-c
void testFunc() {
const char *funcName = __PRETTY_FUNCTION__;
if (strncmp(funcName, "objc_", 5) == 0) {
NSLog(@"当前函数是Objective-C方法");
} else {
NSLog(@"当前函数是C函数");
}
}
@interface Test : NSObject
@end
@implementation Test
- (void)testMethod {
testFunc();
}
@end
```
在执行testMethod方法时,会调用testFunc函数,并根据函数的类型输出不同的信息。需要注意的是,这种方式只适用于Objective-C程序,对于C程序或者其他编程语言,需要使用对应的方式来判断函数类型。
阅读全文