문제

GCC_PREPROCESSOR_DEFINITIONS (또는 XCODE를 사용하는 경우 전처리 자 매크로 ")에서 매크로"foo= bar "를 추가하면"foo "값에 액세스하는 가장 좋은 방법은 무엇입니까?

현재, 나는 서투른 것을 사용한다 :

    #define MACRO_NAME(f) #f
    #define MACRO_VALUE(f)  MACRO_NAME(f)

    #ifdef FOO
        NSLog(@"%s", MACRO_VALUE(FOO));
    #else
        NSLog(@"undefined");
    #endif
.

"바"를 출력합니다

확실히, 더 좋거나 깨끗한 방법이 있어야합니까?

도움이 되었습니까?

해결책

당신이하는 일은 (또는 stringify ) 매크로 값을 (또는 em> stringify)입니다.간접적 인 것은 불가피합니다.

GCC 전처리 수동 섹션 (아카이브 링크) 링크 된

 #define xstr(s) str(s)
 #define str(s) #s
 #define foo 4
 str (foo)
      ==> "foo"
 xstr (foo)
      ==> xstr (4)
      ==> str (4)
      ==> "4
.

다른 팁

NSLog(@"%s", #FOO);
.

stringification 그것은 이미 사용하고있는 기술입니다.그것이 무엇이 잘못 되었습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top