본문 바로가기

강의자료/C/C++

026. 매크로 함수는 주의깊게 사용해야 한다.

◈ 이 글은 강의를 위하여 제가 직접 작성한 내용입니다. 따라서 퍼가실 경우, 출처를 명확히 해주시기 바랍니다!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!


매크로 함수를 일반함수처럼 무작정 사용해서는 안된다.
매크로 함수를 사용할 때 발생할 수 있는 문제점이 무엇인지 짚고 넘어가자.
#include 
using namespace std;

int Sum(int a, int b)
{
	return a+b;
}

void Average(int sum, int cnt)
{
	cout << "일반함수" << endl;
	cout << "합계 : " << sum << endl;
	cout << "평균 : " << sum/cnt << endl;
	cout << endl;
}

#define AVERAGE(sum, cnt)\
{\
	cout << "매크로함수" << endl;\
	cout << "합계 : " << sum << endl;\
	cout << "평균 : " << sum/cnt << endl;\
	cout << endl;\
}

void main()
{
	int a = 100, b = 200;

	Average(Sum(a,b), 2);
	AVERAGE(Sum(a,b), 2);

	{
		cout << "매크로함수" << endl;
		cout << "합계 : " << Sum(a,b) << endl;
		cout << "평균 : " << Sum(a,b)/2 << endl;
		cout << endl;
	}
}

// 합계 : 300
// 평균 : 150