인라인 함수

인라인 함수 비용

작은 함수를 호출 지점에 펼칠 수 있지만 실제 인라인 여부는 컴파일러 최적화와 함수 형태에 따라 달라집니다.

목적

함수 호출 부하를 줄임

아주 작은 접근자나 계산 함수는 호출 준비 비용이 본문보다 커질 수 있습니다.

inline int sqr
헤더

정의가 보이는 위치 필요

여러 번역 단위에서 쓰려면 컴파일러가 함수 본문을 볼 수 있어야 합니다.

header definition
매크로 비교

타입 검사를 유지

인라인 함수는 매크로보다 디버깅과 타입 안정성 면에서 유리합니다.

type-safe
인라인 함수 비용 한계

큰 함수는 코드 크기를 키움

복잡한 함수는 펼쳐도 이득이 적고 명령 캐시 부담이 커질 수 있습니다.

code size
작은 함수본문이 짧고 자주 호출되는지 먼저 봅니다.
정의 위치헤더에 둔 inline 정의가 모든 사용 지점에서 동일한지 확인합니다.
최종 판단성능은 추측보다 측정으로 확인하고 컴파일러 최적화를 신뢰합니다.