더북(TheBook)

1.5.3 인라인

함수를 호출하는데 드는 비용은 비교적 많다고 할 수 있다. 레지스터를 저장하고 스택에 인수를 복사해야 한다. 이 오버헤드를 피하고자 컴파일러는 함수 호출을 인라인할 수 있다. 함수 호출을 인라인하면 해당 부분을 함수에 포함된 연산으로 대체한다. 프로그래머는 적절한 키워드를 사용해 컴파일러에 인라인 여부를 요청할 수 있다.

inline double square(double x) { return x * x; }

그러나 컴파일러는 인라인을 수행할 의무가 없다. 반대로, 성능 면에서 유리해 보이면 키워드가 없어도 함수를 인라인할 수도 있다. inline 선언은 여러 컴파일 단위에 함수를 포함하려고 여전히 사용하는데, 이에 대해서는 7.2.3.2절에서 논의할 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.