인-라인(in-line) 함수
- C언어에서는 간단하고 반복적인 구문이 사용될 때 #define을 사용한다.
- #define은 컴파일 시 전처리 과정에서 코드와 그대로 매핑 된다.
- 함수는 스택 메모리 할당을 요구하지만 define은 코드로 매핑되기 때문에 함수보다 성능상 이점이 있다.
- 단점으로는 간단한 구문만 사용할 수 있고 디버깅이 불편해 진다는 것이다.
#define MULT(a) (a*a)
int main(void)
{
MULT(10);
return 0;
}
- C++ 에서 이를 좀 더 쉽게 사용할 수 있는데 그 방법이 inline을 사용하는 것이다.
inline int MULT(int a)
{
return (a*a);
}
int main(void)
{
MULT(10);
return 0;
}
- 이와 같이 #define와 다르게 단지 함수 앞에 inline이라는 이름만 붙여주면 된다.
- 장점은 사용하기 간편하고 성능상 이점을 가져온다는 것으로 #define과 다르게 전처리가 아닌 컴파일러에 의해서 처리가 된다. 또한 inline으로 성능상 나빠진다고 판단되면 inline을 진행하지 않고 무시하기도 한다.
도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)
0 댓글