'Objective C/전처리기'에 해당되는 글 3건
- 2010.06.06 #import 명령문
- 2010.06.06 #연산자와 ##연산자
- 2010.06.06 #define 명령문
#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의 변수로 접근하여 그 값을 출력하는 매트로이다.
#import <Foundation/Foundation.h>
#define EqualValue(x , y) if(x == y){ NSLog(@"같다"); }else{NSLog(@"다르다");}
#define PrintNumber( value ) NSLog(@"%i", value)
#define PrintText( value ) NSLog(@"%@", value)
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
EqualValue(10 , 10);->같다를 출력
EqualValue(10 , 100);->다르다를 출력
PrintNumber(400);
PrintText(@"가나다라마바사");
[pool drain];
return 0;
}