본문 바로가기

inline 유지의 장점

  • 함수 호출 오버헤드 최소화
  • 헤더만으로 정의 가능하여 사용이 간편
  • 최적화 시 구조체 리턴이 인라인 처리되어 코드가 간결해짐
  • 팩토리 성격의 함수로서 호출 지점에서 값 채워 넣기에 유리

일반 함수(.c로 이동)의 장점

  • 컴파일 종속성 감소 → 변경 시 재빌드 범위 축소
  • 디버깅 및 심볼 추적이 쉬움
  • 다중 호출 시 코드 크기 증가(인라인 확장) 방지
  • 함수 포인터로 주소를 취할 수 있어 테스트·후킹에 유리

공통 주의사항

  • inline/일반 함수 모두 파일 스코프 정적 초기화에는 사용 불가
    • 런타임 값 또는 함수 호출 결과는 상수 초기화가 아님
    • 현재처럼 InitAll에서 런타임에 값을 채우는 방식 유지 필요
  • 호출 빈도가 높을 경우 인라인 남발은 코드 크기 증가 위험

결론 / 추천

  • 호출 빈도가 낮고 헤더에서 직접 사용해야 한다면 → inline 유지
  • 라이브러리 안정성, 디버깅 편의성, 재빌드 효율을 중시한다면
    → .c로 이동하여 일반 함수로 변경

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.