컴파일러는 본문 크기와 호출 빈도를 보고 인라인 여부를 고른다
inline은 요청일 뿐입니다. 실제 적용은 컴파일러가 비용을 비교해 결정합니다.
01호출 지점 확인
getMax(x, y) 같은 호출식을 만납니다.
02본문이 보이는가
헤더에 정의되어 있거나 같은 번역 단위에서 본문을 확인합니다.
03복사 비용 비교
작은 함수인지, 복사해도 코드 크기가 과하지 않은지 봅니다.
04펼치거나 호출
적합하면 본문을 펼치고, 아니면 일반 함수 호출을 유지합니다.
인라인되기 쉬움한두 줄 계산, 자주 호출, 본문이 컴파일 시점에 보임
인라인되기 어려움큰 루프, 재귀, 함수 포인터 호출, 코드 크기 증가가 큼
결론: 키워드를 붙이는 것보다 “펼쳤을 때 이득이 비용보다 큰가”가 더 중요합니다.