典型的编译器是否会内联一个C函数来进行一个或多个Objective-C方法调用? E.g:
NSUInteger AACStringGetLength(NSString *string)
{
return [string length];
}
带有解释的彻底证明的奖励积分。
除递归之外的其他什么可能会阻止编译器内联C函数?
答案 0 :(得分:2)
AACStringGetLength()
内联到其调用者中。调用Objective-C方法无法阻止C函数的内联。
当然,Objective-C方法本身无法内联,因为编译器无法知道没有异常的动态调度。
可以阻止内联的事情包括: