메크로 함수의 장점

단점

inline int SQUARE(int x)
{
	return (x * x);
}

C의 inline 과 비슷하다고 보면 될 것 같다.

매크로 함수에 있는 인라인 함수에는 없는 장점

매크로 함수는 자료형에 의존하지 않지만 인라인 함수는 자료형에 의존한다.

inline int SQUARE(int x) {return x * x}
std::cout << SQUARE(3.15); // 0.15가 손실되어서 3x3의 결과인 9가 출력

오버로딩으로 해결할 수 있으나 매크로를 그냥 쓰면 좋다.

그외에도 T 템플릿을 사용할 수 있으나 이거는 나중에 배운다.

#include <iostream>

template <typename T>
inline T SQUARE(T x)
{
	return x * x;
}

int main(void)
{
	std::cout << SQUARE(5.5) << STD::endl;
	std::cout << SQUARE(12) << STD::endl;
}