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