인라인 함수란?
함수로 정의된 코드를 일반 코드라인으로 복붙하는 기능을 의미한다.
인라인 함수를 설명하기 전에 함수의 호출 방식을 설명하면
함수를 정의하고 호출하면 해당 함수를 스택에 담게 된다 그다음으로 함수 주소로 가서 해당 함수를 실행하고
다시 해당 함수를 호출한 호출자 함수로 다시 돌아가는 과정을 거친다.
그러다 보니 그냥 main 코드 라인에 적는 것보다 함수를 이용해서 만든 게 조금 더 느릴 수 있다.
이런 점을 보완하기 위해서 나온 것이 Inline 함수이다.
사용방법
1
2
3
4
5
6
7
8
9
10
|
|
inline int sum(int a, int b)
{
return a + b;
}
int main()
{
int c = sum(10, 20); // int c = 10 + 20;
cout << c << endl;
}
|
sum(10,20)으로 sum함수를 호출하였지만 inline함수이기때문 함수를 호출하는게아닌 컴파일러안에서는 10+20으로 실행되었을것이다.
인라인 함수의 주의사항
1. inline 키워드를 정의해도 안될 수도 있고 될 수도 있다. 또한 정의하지 않아도 inline이 될 수 있다.
2. 인라인 함수는 헤더 파일에 위치해야 한다.
복붙을 하려면 컴파일러가 그 구 현 내용을 봐야 하기 때문이다.
따라서 cpp 파일에 구현하면 해당 함수의 정의를 알 수 없음
3. 간단한 함수에만 정의 해주는 것이 좋다.
'C++' 카테고리의 다른 글
C++ Friend (0) | 2020.07.30 |
---|---|
C++ 구조체(struct) (0) | 2020.07.20 |
C++의 Casting,형변환 (0) | 2020.01.19 |
STL vector에서 push_back과 emplace_back의 차이점 (0) | 2019.12.04 |
C++ 가상 함수(Virtual),순수 가상 함수 , 가상 소멸자 (0) | 2019.10.17 |