카테고리 없음
inline 함수
zuyo
2019. 5. 9. 01:46
반응형
목적
- 빠른 실행속도(매크로 함수의 장점 유지)
- 일반 함수처럼 정의 가능, 복잡한 함수도 정의 가능 (매크로 함수의 단점 개선)
매크로 함수와 비교
#include <iostream>
using namespace std;
#define func_1(x) ((x)*(x))
inline int func_2(int x) {
return x*x;
}
void main() {
cout << func_1(5) << endl;
cout << func_2(5) << endl;
cout << func_1(3.14) << endl;
cout << func_2(3.14) << endl;
}
// 25
// 25
// 9.8596
// 9
인라인 함수의 매개변수형을 int로 줬기때문에 정보손실이 일어났다.
이를 해결하기 위해 템플릿을 사용했다.
#include <iostream>
using namespace std;
template <typename T>
inline T func_2(T x) {
return x*x;
}
void main(void) {
cout << func_2(3.14) << endl;
}
반응형