카테고리 없음

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;
}
반응형