Language/C++
[C++] 인라인 함수 (Inline Function)
bugwasd
2015. 11. 28. 18:21
인라인 함수란 프로그램 라인 안으로 들어가버린 함수라는 뜻으로 기존 C 에서는 아래와 같이 매크로 함수를 사용하여 구현하였다.
1 2 3 4 5 6 7 8 9 | #include <iostream> using namespace std; #define SQUARE(x) ((x)*(x)) int main() { cout << SQUARE(5) << endl; } |
위의 코드는 전처리 과정에서 SQUARE(5) 부분이 ((5)*(5))로 치환된다.
하지만 이는 긴 함수에 대한 구현이 어려웠는데, C++ 에서는 함수 앞부분에 inline 키워드만 붙여 아래와같이 인라인화 할 수 있다.
1 2 3 4 | inline int square(int x) { return x*x; } |
위와 사용하면 긴 함수도 inline 키워드를 붙여 쉽게 인라인화 할 수 있지만 긴 함수를 인라인화 하면 프로그램의 크기도 커지므로 짧은 함수만 인라인화 하는 것이 좋다.