'#연산자'에 해당되는 글 1건

  1. 2010.06.06 #연산자와 ##연산자
Objective C/전처리기2010. 6. 6. 16:52
전처리기 단계에서 #연산자를 사용하면 C스타일의 문자열을 생성한다. 가령 10이라는 정수를 # 10 으로 하게되면 문자열 '10'으로 변환되며 이를 활용 할 수 있다.

#import <Foundation/Foundation.h>


#define printint(var) printf(# var " = %i \n" , var) 


int main (int argc, const char * argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

//숫자를 입력 숫자의 값을 C스타일 문자열로 선언 출력 입력된 값을 %i 출력

printint( 100 );

-> 100 = 100으로 출력하게 된다.


[pool drain];

    return 0;

}                 



##연산자는 매크로 정의에서 두개의 토큰을 합치는 데 사용한다. 따라서 전처리기의 단계에서 num1, num2, num3 ...과 같은 공통문자열이 되는 변수 값이 있다고 할 때 토큰그룹 1을 num이라고 하고 토큰 그룹2를 뒤에 오는 숫자라고 할 때 이 둘을 조합하여 필요한 변수의 값에 접근할 수 있다. num ## 1은 num1을 의미하는 것이고 num ## 2는 변수 num2를 지칭하는 것이다.


#define printStrX01( n ) printf( "%i \n" , x ## n) 

위의 코드는 x1~n의 변수로 접근하여 그 값을 출력하는 매트로이다.

Posted by 버터백통