인라인 함수와 매크로의 차이

2025. 3. 10. 22:14개발자 능력치 물약/C++

매크로

 C언어에서 매크로기능을 이용해  원하는 함수나 변수를 정의해서 쓸 수 있었다.

#define PI 3.141592
#define WINSIZE_X	1080
#define WINSIZE_Y	500
#define DEG_TO_RAD(degree) ((3.14 / 180.0) * degree)

 

매크로의 장점 : 함수 호출이 필요없다.

매크로의 단점:  디버깅이 힘들다. 함수가 길어지면 불편하다. 남발하면 소스코드의 길이가 길어진다. 

                                    타입체크 무시, namespace 무시한다.

인라인함수

// 매크로 :
#define MUL(x,y) ((x)*(y))

// 인라인 :
inline int MUL(int x,int y) {
    return x*y;
}

 

 

inline 키워드를 함수명 앞에 붙이면 컴파일러가 알아서 함수를 최적화 해준다.

 

매크로 와 인라인함수의 차이)

1. 매크로는 전처리기에서 처리, 인라인은 컴파일러에서 처리

2. 매크로는 타입체크를 안하지만 , 인라인은 타입체크를 해줌

 

요즘은 컴파일러의 성능이 매우 좋기때문에 인라인함수를 쓰는 습관을 가지자.