인라인 함수는 미주알고주알 따져서 이해해 두자

Bogoomi·2022년 6월 28일
0

EffectiveC++

목록 보기
14/24

항목30 - 인라인 함수는 미주알고주알 따져서 이해해 두자



요약

inline 함수의 특징
1. 인라인 함수를 사용하려면 함수 선언 앞에 inline이라는 키워드를 사용한다.
2. 클래스 멤버 함수가 inline을 사용하려면, 함수 정의의 위치가 *.h에 있어야 한다.
안그러면 확인할 수 없는 참조라고 뜸
3. 함수의 덩치가 크거나 재귀호출이면 inline 요청을 거부하는 컴파일러도 있다.
4.함수 코드의 수행 시간이 짧고 빈번하게 호출되는 함수에 유리한 기능!

  • inline 함수는 '어떻게 호출하느냐'에 따라 인라인이 되기도하고 안되기도 한다.
    inline 함수는 컴파일러에게 '이 함수좀 넣어줘!' 라 요청하는 것이지, '명령'이 아니다.
    때문에 컴파일러가 봤을 때 복잡한 함수는 inline해주지 않는다.
  • 간단한 함수일지라도 virtual로 선언된 함수는 절대 inline해주지 않는다.
    virtual : 어떤 함수를 호출할지 결정하는 작업을 실행 중에 한다!
    inline : 함수 호출 위치에 호출된 함수를 끼워 넣는 작업을 프로그램 시작 전에 한다!
  • 생성자와 소멸자를 inline으로 사용하려고 하지말자.




잊지말자!

  • 함수 인라인은 작고, 자주 호출되는 함수에 대해서만 하는 것으로 묶어두자.
    디버깅 및 라이브러리의 바이너리 업그레이드가 용이해지고,
    자칫 생길 수 있는 코드 부풀림 현상이 줄어들며,
    프로그램 속력이 더 빨라질 수 있는 여지가 최고로 많이 생긴다.

  • 함수 템플릿이 대게 헤더 파일에 들어간다는 일반적인 부분만 생각해서 이들을 inline으로 선언하면 안된다.

느낀점
inline 함수가 사실 빨라지긴하지만 아주 엄청 많이 사용하지않는 이상 프로그램 속도는 비슷할거같다. 극한의 효율을 내기위해선 사용하지 않을까싶다,,

profile
개에에에바알

0개의 댓글