컴파일러가 프로그램 코드를 분석하기 전에 처리한다. 그리고 실행 방식은 한마디로 매크로라고 할 수 있다. 흔히 변수와 값등을 설정하여 사용하기도 하지만 자주 사용하는 명령문등을 만들어 놓고 해당 파일을 임포트하여 사용할 수 도 있다. 간단히 매크로 정의라고 생각하면 편할 것이다.
#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;
}
위의 코드는 비교문과 정수값과 문자열을 프린트하는 매크로를 정의한 것이다.