본문 바로가기

Language/C C++

[C++]inline 함수

반응형

[C++]inline 함수

기본적으로 함수 호출은 메모리상의 점프를 이용하며, 여러가지 상태 정보등을 저장하고 복원해야 하므로 내부적으로 복잡한 과정을 거친다. 프로그램이 실행되며 한줄씩 수행해 나가다가 함수 호출을 만나면 해당 함수의 메모리 영역으로 이동후 동작을 수행한다.
하지만 인라인 함수는 해당 함수 호출을 함수의 코 저체를 호출한 코드 위치로 모두 복사하여 대체한다. 따라서 함수 호출 단계가 줄어 복잡한 과정이 생략되므로 함수 동작 방식이 더 간단해지고 성능이 향상된다.
하지만 인라인함수가 항상 좋은것은 아니다. 인라인 함수는 코드를 대체하는 것이기 때문에 해당 함수를 호출하는 구문이 많아질 수록 실행 파일의 크기도 커진다. 호출 구문이 모두 함수의 정의로 바귀어서 전체 코드 양이 늘어나기 때문이다.
적절하게 인라인 함수를 사용한다면 성능에서의 이득을 볼 수 있다. 하지만 인라인 함수는 컴파일러가 최적화를 하면서 인라인 함수처럼 사용할 것인지 말 것인지 판단하므로 유념해서 사용해야 한다.

  • 함수 정의부가 실행코드를 대체하므로, 실행 상 오버헤드를 줄여서 실행속도가 빠르다.
  • 함수 정의부가 길고 호출이 많다면 얻을 수 있는 장점이 줄어든다.
반응형

'Language > C C++' 카테고리의 다른 글

[C++] Reference(1/2)  (0) 2020.09.13
[C++] 클래스 생성자  (0) 2020.04.09
[C/C++]std::mutex  (0) 2019.01.23
[C/C++] 소켓 프로그래밍  (0) 2019.01.04
[C/C++] const keyword  (0) 2019.01.04