인라인(Inline) 함수
인라인(Inline) 함수는 함수를 호출하고 실행하는데 따르는 시간 오버헤드(overhead)를 없애기 위해서 도입되었다.
많은 처리 횟수를 가지는 반복문 안에 함수가 삽입되어 있는 경우,
반복문이 실행될 때마다 함수가 호출되고 실행되는 과정이 반복되므로 시간 오버헤드가 매우 가중된다.
이러한 비효율성을 방지하고자 도입된 것이 인라인 함수이다.
인라인 함수는 컴파일 시에 컴파일러가 함수 부분에 해당하는 코드들을 그대로 삽입함으로써 함수가 호출되는 과정을 생략하게끔 만들어준다. 즉, 함수 호출에 따른 시간 오버헤드가 없어지고 실행속도가 빨라진다.
인라인 함수를 만드는 방법은 간단히 함수 반환형 앞에 inline을 붙여주면 된다.
인라인 함수는 짧은 코드의 함수인 경우, 그리고 여러번 반복되어 사용되지 않는 함수의 경우에 유용하다.
여러번 반복되어 사용되는 함수의 경우, 컴파일 시 컴파일러가 그 함수에 해당하는 코드들을 해당 함수가 호출된 지점에 모두 삽입시켜버리므로 (눈에 보이지는 않지만) 코드 길이가 길어지고 인라인을 사용하지 않는 경우보다 더 비효율적이게 된다.
또한, 인라인 함수를 선언한 경우 함수의 선언과 정의 부분은 모두 같은 파일에 있어야 한다.
컴파일러는 컴파일 과정에서 파일 단위로 컴파일하며, 컴파일 도중 다른 파일을 참조하지 않기 때문이다.
'language > C|C++' 카테고리의 다른 글
데이터 상수화, 포인터 상수화 (0) | 2016.07.21 |
---|---|
SwitchViewDemo (0) | 2016.06.06 |
디폴트 대입연산자에 의한 문제점 (0) | 2016.05.07 |
#pragma (0) | 2016.05.02 |
#ifdef, #endif,.. Preprocessor (0) | 2016.05.01 |