Inline
인라인함수란?
함수를 호출하면 함수가 스택 메모리에 올라갑니다. 또한 매개변수가 있다면 매개변수 복사도 일어납니다. 함수가 정의되있는 곳으로 제어 흐름을 이동해야합니다.
이처럼 함수호출은 굉장히 많은 연산이 이루어지는 행위입니다. 그렇기 때문에 생각 외의 자원이 낭비되기도 하는데요(오버헤드현상).
아예 치환해버리면되지않을까? 해서 나온게 매크로입니다. 매크로는 함수가 아니기때문에 사용하면 속도향상이 일어날 수 있지만, 치환하고자하는 내용이 커지게되면 코드가 엄청 커지기 때문에, 사용 시에 주의해야 하는 단점이있지요..
매크로의 장점과 함수의 장점을 한군데에 모아둔것이 바로 인라인함수입니다.
인라인함수 선언은 정말 쉽습니다. 심지어 비주얼스튜디오에서는 자동으로
"이 함수는 인라인함수면 좋겠는데?"
라고 판단해서 알아서 인라인함수로 만들어버리기도 합니다..
인라인함수를 간단하게 작성해보겠습니다.
너무 간단하죠? 그냥 함수 선언 맨앞에 inline만 붙여주면 됩니다.
그리고 컴파일러가 이 함수를 인라인함수로 확정하길 빌며 기다리면됩니다..( ;ㅅ;)
[솔루션탐색기->프로젝트이름오른쪽클릭->속성]을 들어가면 최적화에 '인라인 함수 확장'이 있습니다.
뭐 여러가지 설정할 수 있는데, 기본값은 '적당한건 인라인함수로 바꾼다'입니다.
그 외에도 인라인함수선언된것만 적용시키는 것도 있으니, 필요하면 쓰면 됩니다.