c23 [C++] 인라인 함수
본문 바로가기
[C++]

[C++] 인라인 함수

by Jarvis2304 2022. 10. 3.

 

▶ 함수 호출에 따른 시간 오버헤드

- 함수를 호출 할때는 그림1 과 같은 시간 소모가 발생

- 함수 호출 오버헤드(overhead)시간이 무시할 수 없는 비중을 차지하는 경우도 있음 (ex:그림2)

 

그림1

 

그림2

▶ 인라인 함수(inline function)

- 짧은 코드로 구성된 함수에 대해, 함수 호출 오버헤드로 인한 프로그램의 실행 속도 저하를 막기위해 C++에서 도입된 방법

- 함수 앞에 inline 키워드를 이용하여 선언

▷ 인라인 함수에 대한 처리

- 인라인 함수를 호출하는 곳에 인라인 함수 코드를 확장 삽입하여 호출이 일어나지 않게 한다

- 메크로와 유사

- 코드 확장 후 인라인 함수는 사라짐

▷ 인라인 함수 호출

- 함수 호출에 따른 오버헤드가 존재 하지 않음 → 프로그램의 실행 속도 개선

 

 

▶ 인라인 함수의 장단점

▷ 장점 :프로그램의 실행 시간이 빨라진다

▷ 단점 :인라인 함수 코드의 삽입으로 컴파일된 전체 코드 크기 증가

- 통계적으로 30%증가

- 짧은 코드의 함수를 인라인으로 선언하는 것이 좋음

 

 

▶ 자동 인라인 함수

- 클래스 선언부에 구현된 멤버 함수는 인라인 함수로 자동처리

- 생성자를 포함, 모든 함수가 자동 인라인 함수 가능

- 컴파일러에 의해 자동으로 인라인 처리

 

 

 

 

 

참고문헌: 명품 C++ Programming

'[C++]' 카테고리의 다른 글

[C++] C++ 프로그램 작성법  (0) 2022.10.05
[C++] 구조체  (0) 2022.10.04
[C++] 접근 지정자 (캡슐화)  (0) 2022.10.03
[C++] 생성자와 소멸자  (0) 2022.10.02
[C++] 클래스, 객체 생성하기  (0) 2022.09.30

댓글