C,C++
inline
콜라한캔
2018. 12. 9. 11:54
- 컴파일러에 의해 처리되고, 이는 컴파일러에게 최적화 기회를 제공해 준다.
- 매크로의 장점을 가지며 함수 이름 앞에 inline 키워드만 붙여주면 된다.
inline은 함수 본문의 복사본을 함수가 호출되는 각 위치에 삽입하도록 컴파일러에게 지시하는 지정자이다.
그러나 컴파일러가 비용, 이익 분석 시에 수익성이 없다면 수행하지 않을 수 있다.
비용, 이익 분석을 재정의하고 프로그래머의 판단에 맡기는, 즉 inline을 강제로 사용하게 하는 _forceinline 키워드도 있지만
이를 무분별하게 사용할 시 코드가 더 커져 성능이 크게 향상되지 않거나, 실행 파일의 페이징 증가와 같은 이유로
성능이 손실될 수 있다.
inline int max(int a, int b){ if(a > b) return a; return b; }
참고) https://msdn.microsoft.com/ko-kr/library/bw1hbe6y.aspx?f=255&MSPPError=-2147217396