내가 (나는 아이폰 OS 개발자입니다) C에서 큰 아니에요 호출 그래서 이것은 하나의 나를 혼란 : 나는 약간의 현지화를 정의하는 헤더 파일을 가지고주소
을 도우미 :
#ifndef LocalizationMacros_h
#define LocalizationMacros_h
static NSString * forcedLanguage = nil;
static inline void forceLanguage(NSString*language){
NSLog(@"Forcing language %@ (%i)", language, &forcedLanguage);
// Output: Forcing language de (5248160)
forcedLanguage = language;
}
static inline NSString * translate(NSString * language, NSString * key){
NSLog(@"Forced language: %@ (%i)", forcedLanguage, &forcedLanguage);
// Output: Forced language: (null) (5248236)
// ... do some stuff to put translation into result ...
return result;
}
#endif
이해가되지 않는 이유는 값으로 (null)
결과 forceLanguage()
와 translate()
사이 forcedLanguage
변화의 주소. 누군가가 나를 계몽 할 수 있습니까?
필자는'inline'이 각 컴파일 단위에 로컬로 별도의 정적을 생성하게한다고 추측합니다. 서로 다른 컴파일 단위에 두 가지 방법이 있습니까? –