inline int square(int x) { return x * x; } void main() { cout << "square(5) = " << square(5) << endl; }
프로그램 실행화면
#define square(x) ((x) * (x)) 이렇게 매크로 함수를 만들어 줄 수 있었다. 매크로 함수는 디버깅에도 어려움이 있고 버그도 발생하기 쉽고 구현해야하는 것들이 많아지면 프로그램이 복잡하고 길어진다.
그래서 같은 동작을 하는 inline함수를 만드는 것이 유리한다. 왜 굳이 매크로 함수나 인라인(inline)함수를 사용해야 할까? 그것은 메모리를 조금이라도 덜 읽고 쓰기 위해서이다.
함수를 호출하면 메모리에 스택방식으로 쌓이게 된다. 그리고 함수가 끝나면 그 함수에 대한 정보를 삭제한다. 함수를 빈번하게 호출하게 되면 메모리에 값을 쓰고 지우고를 계속 반복하게 된다.
자주 호출하는 함수인 경우에는 인라인(inline) 또는 매크로 함수로 만들어 버리면 메모리에 저장하고 삭제하고를 조금 줄일 수 있는 것이다. 컴퓨터 속도가 엄청 빨라져서 이제는 크게 상관 없어 보이긴 하지만 말이다.