C언어
매크로(macro) #define
누더기
2014. 8. 21. 11:46
#define은 전처리기(Preprocessor)에서 처리하는 매크로(Macro) 중 하나입니다.
전처리기는 컴파일(Complie)하기 전에 처리됩니다.
기능은 특정 글자를 정해준 글자로 교체하는 간단 명료한 방식입니다.
예제를 보면 손쉽게 이해가 가능합니다.
똑같은 코드를 #define을 사용한 것과 안한 것으로 표현해 보겠습니다.
// #define 사용 #define verylong "abcdefghijklmnopqrstuvwxyz \n" int main(){ printf(verylong); printf(verylong); printf(verylong); printf(verylong); printf(verylong); return 0; }
// #define 사용 안함 int main(){ printf("abcdefghijklmnopqrstuvwxyz \n"); printf("abcdefghijklmnopqrstuvwxyz \n"); printf("abcdefghijklmnopqrstuvwxyz \n"); printf("abcdefghijklmnopqrstuvwxyz \n"); printf("abcdefghijklmnopqrstuvwxyz \n"); return 0; }
즉, 첫번째 코드가 전처리기를 거치면 두번째 코드의 모습을 띄게 됩니다.
그러므로 당연히 출력값은 동일합니다.
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz