(구) 자료/C
[1-4] inline 함수
뜐뜐뜐
2018. 8. 27. 15:54
1. inline 함수란?
- in(내부) + line(프로그램 코드 라인)
- 즉, 프로그램 코드라인 안으로 들어가 버린 함수
2. inline 함수는 왜 쓰는걸까
- 매크로 함수는 일반적인 함수에 비해 실행속도가 빠른 장점이 있지만, 정의하기가 어렵다는 단점이 있다.
(매크로 함수란... define으로 처리해주는 함수를 의미한다. 괄호 하나 까딱 잘못하면 값이 망가진다.
- 이처럼 정의하기 어려운 단점을 보완하고, 장점은 그대로 가져가는 것이 바로 inline 함수이다.
3. inline 함수의 특징?
- 매크로(define)를 이용한 함수의 인라인화는 전처리기에 의해서 처리되지만, inline을 이용한 함수의 인라인화는 컴파일러에 의해 처리가 됨.
- 따라서 컴파일러가 inline 키워드가 붙은 함수를 컴파일 하면서, inline이 오히려 성능 저하를 야기한다고 판단하는 경우, 무시해버린다.
- 반대로, 인라인화가 필요하다고 판단되는 함수에는 임의로 인라인 처리를 하기도 한다.
4. inline vs define
- 매크로 함수(define)은 자료형을 굳이 지정해주지 않아도 알아서 한다는 장점이 있다.
- 그러나, inline의 경우 함수 호출 시, 데이터 손실이 발생할 수도 있다. (추후에, 템플릿 키워드를 통해 해결 가능)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include<iostream> using namespace std; template <typename T> inline T SQUARE(T x){ return x*x; } int main(){ cout<<SQUARE(5.5)<<endl; cout<<SQUARE(12)<<endl; return 0; } | cs |