인라인 함수
-> 매크로 함수의 장점을 취하고, 단점을 보완한 함수
1
2
3
4
5
6
|
#define SQUARE(x) (x) * (x)
inline int Square(int _x)
{
return _x * _x;
}
|
cs |
매크로의 단점
##1. 디버깅 불가
##2. 복잡한 함수
인라인 함수가 일반 함수로 바뀌는 경우
#1. 함수 포인터로 이용할 경우
#2. 재귀형태로 함수를 호출할 경우
#3. 컴파일러 버그
-> inline 키워드가 있어도 컴파일러의 판단에 따라 일반 함수가 될 수가 있고,
-> 반대로 inline 키워드가 없어도 인라인 함수가 될 수도 있다.
인라인 함수의 주의사항
-> 헤더파일에 함수의 정의부까지 구현해야 한다.
-> 그런데, 헤더파일에 함수의 정의부를 모두 구현할 경우 파일 분할의 목적이 사라지게 된다.
-> 그렇기 때문에 한줄 짜리만 대부분 인라인을 사용한다.
-> 전역 함수 일 경우 파일 분할 시 주의사항과 중복된 내용이 있기 때문에 inline 키워드를 무조건 명시해야만 한다.
-> 헤더파일에 함수의 정의부를 모두 구현할 경우 파일 분할의 목적이 사라지게 된다.
'Programming > C++ Basic' 카테고리의 다른 글
C++ 임시 객체 (0) | 2020.09.23 |
---|---|
C++ 연산자 오버로딩(operator) (0) | 2020.09.23 |
C++ 바인딩 (0) | 2020.09.21 |
C++ 캐스팅(static_cast, dynamic_cast, const_cast, reinterpret_cast) (0) | 2020.09.18 |
C++ 가상 함수(virtual), 가상 소멸자, 순수 가상 함수 (0) | 2020.09.18 |