__PRETTY_FUNCTION__和__FUNCTION__在objective-c中的输出一样
时间: 2023-07-21 20:36:36 浏览: 216
在Objective-C中,__PRETTY_FUNCTION__和__FUNCTION__宏的输出确实是一样的,都是当前函数的名称字符串。不过,需要注意的是,它们输出的字符串的格式略有不同。
__PRETTY_FUNCTION__宏会输出一个包含函数返回值、函数名和参数类型等信息的字符串,格式如下:
```
返回值类型 函数名(参数类型1, 参数类型2, ...)
```
而__FUNCTION__宏则只会输出函数名字符串,格式如下:
```
函数名
```
因此,如果只需要获取当前函数的名称字符串,可以使用__FUNCTION__宏,如果需要获取更加详细的函数信息,可以使用__PRETTY_FUNCTION__宏。不过,需要注意的是,这些宏都只适用于编译时获取函数信息,无法在运行时动态获取函数信息。如果需要在运行时获取函数信息,可以使用NSInvocation或者NSMethodSignature等Objective-C运行时库提供的API。
相关问题
可以用来判断当前函数是c函数还是oc方法的宏
在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程序或者其他编程语言,需要使用对应的方式来判断函数类型。
阅读全文
相关推荐
基于LSTM神经网络的温度预测分析
介绍
基于LSTM神经网络的温度预测分析,探索使用LSTM神经网络对中国湖北省孝感市的气温进行预测,并且评估其预测精度。
软件架构
软件架构说明
安装教程
pip install --save pandas numpy sklearn tensorflow
**目 录**
. 课程背景及意义 2]()
[2. 实验目的: 2]()
[3. 数据集: 3]()
[3.1 数据来源 3]()
[3.2 数据清洗 4]()
[3.3 数据标准化 4]()
[4. 实验步骤: 5]()
[4.1 数据获取 5]()
[4.2 数据处理 7]()
[4.3 LSTM模型构建与训练 10]()
[5. 结果分析 18]()
[6. 实验总结 21]()
1. # <a name