[C++]
[C++] 인라인 함수
Jarvis2304
2022. 10. 3. 20:36
▶ 함수 호출에 따른 시간 오버헤드
- 함수를 호출 할때는 그림1 과 같은 시간 소모가 발생
- 함수 호출 오버헤드(overhead)시간이 무시할 수 없는 비중을 차지하는 경우도 있음 (ex:그림2)


▶ 인라인 함수(inline function)
- 짧은 코드로 구성된 함수에 대해, 함수 호출 오버헤드로 인한 프로그램의 실행 속도 저하를 막기위해 C++에서 도입된 방법
- 함수 앞에 inline 키워드를 이용하여 선언
▷ 인라인 함수에 대한 처리
- 인라인 함수를 호출하는 곳에 인라인 함수 코드를 확장 삽입하여 호출이 일어나지 않게 한다
- 메크로와 유사
- 코드 확장 후 인라인 함수는 사라짐
▷ 인라인 함수 호출
- 함수 호출에 따른 오버헤드가 존재 하지 않음 → 프로그램의 실행 속도 개선

▶ 인라인 함수의 장단점
▷ 장점 :프로그램의 실행 시간이 빨라진다
▷ 단점 :인라인 함수 코드의 삽입으로 컴파일된 전체 코드 크기 증가
- 통계적으로 30%증가
- 짧은 코드의 함수를 인라인으로 선언하는 것이 좋음
▶ 자동 인라인 함수
- 클래스 선언부에 구현된 멤버 함수는 인라인 함수로 자동처리
- 생성자를 포함, 모든 함수가 자동 인라인 함수 가능
- 컴파일러에 의해 자동으로 인라인 처리

참고문헌: 명품 C++ Programming