언제 사용해야 할까?
: 함수 중에서 코드가 간단한 연산인 경우에 반드시 사용하자.
클래스 선언부에서 함수의 정의부를 작성한 경우, 알아서 인라인 처리된다.
조건으로는 정말 간단하게 한두줄에 끝내야 한다.
: 디버그 모드, release 모드...
-> 디버그 모드로 진행하면 일반 함수 호출처럼 진행되지만,
release 모드로 해서 치환이 일어남.
1. 디버그 모드 일때
2. 릴리즈 모드일 때
: 최적화를 하고 싶다면, release 버전으로 만들자.
: 함수 반환 타입 앞에 "inline"을 표기하는 함수.
: : 컴파일 시간에 함수가 호출되는 곳에 함수의 코드를 그대로 치환함.
장점
: 기존 함수호출이 이루어지는 과정(스택 프레임에 넣고, 해제하는 등의 과정이) 없음.
-> 빠름
단점.
: 컴파일 후, 생성되는 코드파일, 목적파일, obj 파일, 바이너리 파일이 커짐.
- 언제 사용해야 할까?
: 함수 중에서 코드가 간단한 연산인 경우에 반드시 사용하자.
특징
: 인라인 해서 치환 시킬지 여부는 컴파일러가 결정함.
-> 함수의 크기, 컴파일 옵션에 따름.
-- cl 컴파일러는 "/Ob1" 옵션을 사용해야 함.
참고 자료
: 블로그 에서 inline 치환 설정하기 참고.
: int add를 인라인함수로 만들고, 어셈블러로 확인하자
-> 메모리 확인하기,