que estaba leyendo acerca de hasta pasar por la mensajería de Objective-C para obtener un rendimiento (irrelevante para esta pregunta específica) cuando me encontré un poco interesante de código:¿Cuál es el alcance de una función c definida dentro de la clase objetivo-c?
#import <Cocoa/Cocoa.h>
@interface Fib : NSObject { }
- (long long) cFib: (NSUInteger) number;
@end
@implementation Fib
// c implementation of fib
long long cFibIMP(NSUInteger number)
{
return (number < 3) ? 1 : cFib(number - 1) + cFib(number - 2);
}
// method wrapper for c implementation of fib
- (long long) cFib: (NSUInteger) number
{
return cFibIMP(number);
}
@end
Mi pregunta es; cuando se utiliza la función c, dentro de un objeto objetivo-c, ¿en qué ámbito se ubica la función c (cFibIMP en este caso particular)? ¿La clase objetivo-c encapsula la función c eliminando el cambio del choque de nombres o la función c simplemente se vierte en el alcance global de todo el programa objetivo-c?
por lo que anteponer declaración estática a la función restringiría su alcance al módulo, entonces? ¿Esto se aplica a pesar de que la declaración estática se realiza internamente a @implementation en lugar de externa (es decir, al comienzo del archivo de código fuente?) –