inline 유지의 장점
- 함수 호출 오버헤드 최소화
- 헤더만으로 정의 가능하여 사용이 간편
- 최적화 시 구조체 리턴이 인라인 처리되어 코드가 간결해짐
- 팩토리 성격의 함수로서 호출 지점에서 값 채워 넣기에 유리
일반 함수(.c로 이동)의 장점
- 컴파일 종속성 감소 → 변경 시 재빌드 범위 축소
- 디버깅 및 심볼 추적이 쉬움
- 다중 호출 시 코드 크기 증가(인라인 확장) 방지
- 함수 포인터로 주소를 취할 수 있어 테스트·후킹에 유리
공통 주의사항
- inline/일반 함수 모두 파일 스코프 정적 초기화에는 사용 불가
- 런타임 값 또는 함수 호출 결과는 상수 초기화가 아님
- 현재처럼 InitAll에서 런타임에 값을 채우는 방식 유지 필요
- 호출 빈도가 높을 경우 인라인 남발은 코드 크기 증가 위험
결론 / 추천
- 호출 빈도가 낮고 헤더에서 직접 사용해야 한다면 → inline 유지
- 라이브러리 안정성, 디버깅 편의성, 재빌드 효율을 중시한다면
→ .c로 이동하여 일반 함수로 변경
'IT > Software' 카테고리의 다른 글
| VS Code - Markdown Preview 폰트 변경 (0) | 2025.01.06 |
|---|---|
| 리그레션 테스트 - Regression test 의미 (0) | 2024.11.26 |
| Makefile - 쉘 조건문 내에서 make 다른 타겟 호출 방법 (0) | 2024.11.22 |
| Makefile - -@[ -n "$(wildcard reports/*)" ]의 상세 설명 (0) | 2024.11.22 |
| Makefile - `gzip`을 유연하게 다루는 방법: `@`와 `-` 옵션의 역할 (0) | 2024.11.22 |