728x90
In-line fucntion이란 마치 C/C++의 매크로처럼 함수를 In-line 라인 안에 숨긴다는 뜻이다. 예를 들어
void add(int a, int b){
return a + b;
}
main(){
cout << 2 + (add(1,3) << endl;
}
라고 썼다면 디버깅 해보면 메인에서 add를 가서 리턴 값을 받아와 2와 연산한 값을 출력했을 것이다.
main -> cout -> add -> 연산 -> 출력 순이다.
만약 inline을 쓰면?
inline void add(int a, int b){
return a + b;
}
main(){
cout << 2 + (add(1,3) << endl;
}
main -> cout -> 연산 -> 출력 순이된다. 이미 컴파일러는 인라인함수 때문에 저 함수 자체를 알고 있는 상태이기 때문이다. 우리가 어떤 수학 공식을 알면 문제에서 바로 적용 가능하지만 그 공식의 이름만 안다면 책에서 찾아보고 써야하는 것과 같다. inline은 함수를 컴파일러에게 외우게 하는 것이다.
때문에 inline은 함수의 실행시간을 줄여줄 수 있다.
그러나 물론 장점만 있는 것은 아니다. 이는 메모리에는 좋지않은 영향을 준다. inline처리된 함수가 여러번 호출될 경우 컴파일된 코드가 길어질 수 있다.
그러므로 인라인은 함수가 1,2 줄의 짧은 코드일 경우
또는, 반복문을 돌릴 때 유용하게 쓰인다.
최근 컴파일러들은 사용자가 inline을 정해주지 않아도 알아서 inline을 적절히 사용해 컴파일해주기도 한다.
'CS > OOP' 카테고리의 다른 글
객체지향 프로그래밍 - 상속 (java) (0) | 2023.04.19 |
---|---|
객체지향 프로그래밍 - Object, Class (0) | 2023.04.11 |
객체지향 프로그래밍 (0) | 2023.04.04 |
C/C++ 포인터와 참조 : 화살표 -> 과 점 . 의 차이 (0) | 2022.10.20 |
OOP 기초 (왜 쓰는가?, 캡슐화 등) (0) | 2022.10.14 |