inline 함수 240610

보물창고·2022년 8월 10일
0

c++ basic 코드누리

목록 보기
11/50

언제 사용할까? 240610

  • 언제 사용해야 할까?
    : 함수 중에서 코드가 간단한 연산인 경우에 반드시 사용하자.

  • 클래스 선언부에서 함수의 정의부를 작성한 경우, 알아서 인라인 처리된다.
    조건으로는 정말 간단하게 한두줄에 끝내야 한다.

알아야 할점.

: 디버그 모드, release 모드...
-> 디버그 모드로 진행하면 일반 함수 호출처럼 진행되지만,
release 모드로 해서 치환이 일어남.
1. 디버그 모드 일때

2. 릴리즈 모드일 때

결론

: 최적화를 하고 싶다면, release 버전으로 만들자.

개념

: 함수 반환 타입 앞에 "inline"을 표기하는 함수.
: : 컴파일 시간에 함수가 호출되는 곳에 함수의 코드를 그대로 치환함.

  • 장점
    : 기존 함수호출이 이루어지는 과정(스택 프레임에 넣고, 해제하는 등의 과정이) 없음.
    -> 빠름

  • 단점.
    : 컴파일 후, 생성되는 코드파일, 목적파일, obj 파일, 바이너리 파일이 커짐.

  • 언제 사용해야 할까?
    : 함수 중에서 코드가 간단한 연산인 경우에 반드시 사용하자.
  • 특징
    : 인라인 해서 치환 시킬지 여부는 컴파일러가 결정함.
    -> 함수의 크기, 컴파일 옵션에 따름.
    -- cl 컴파일러는 "/Ob1" 옵션을 사용해야 함.

  • 참고 자료
    : 블로그 에서 inline 치환 설정하기 참고.

Problem

: int add를 인라인함수로 만들고, 어셈블러로 확인하자
-> 메모리 확인하기,

profile
🔥🔥🔥

0개의 댓글