[C++] 매크로 함수와 인라인 함수

Eu4ng·2022년 12월 30일
0

C++

목록 보기
1/5

매크로 함수

  • 전처리 단계에서 처리
  • 함수처럼 인자를 설정할 수 있는 매크로
  • 실제로는 함수가 아니라 단순 치환만 해준다
  • 어떠한 타입 검사도 이루어지지 않기 때문에 문제가 발생할 수 있다
// 매크로 함수 예시
#define ADD(a,b) a+b

인라인 함수

  • 컴파일 단계에서 처리
  • 매크로 함수의 단점을 보완하기 위해 사용
  • 일반적인 함수들을 위해 실행하는 타입 검사가 그대로 적용된다
// 인라인 함수 예시
inline int SUM(int a, int b) { return a+b; }

인라인 함수의 종류

  • inline
    - 컴파일러가 자동으로 비용/효율 분석을 통해 이득이 있을 경우에만 인라인 함수로 변환
    - C++에서만 사용 가능
  • _inline
    - 컴파일러가 자동으로 비용/효율 분석을 통해 이득이 있을 경우에만 인라인 함수로 변환
    - C와 C++ 모두 사용 가능
  • __forceinline
    - 컴파일러의 판단과 상관없이 무조건 인라인 함수로 변환
    - C와 C++ 모두 사용 가능

장점과 단점

매크로 함수, 인라인 함수 둘 다 함수가 아닌 치환 기능이다

  • 장점: 일반함수보다 실행 속도가 빠르다
  • 단점: 코드가 복사되므로 실행 프로그램의 크기가 커진다
profile
초보 개발자

0개의 댓글