반응형
inline은 in 은 내부를 뜻하고 line은 프로그램의 코드라인을 의미한다.
의역해보자면 '프로그램 코드라인 안으로 들어가 버린 함수'가 되며 C언어의 매크로함수라고 보면된다.
C 매크로함수의
장점
일반적임 함수에 비해서 빠른 실행속도
단점
정의하기가 어렵다. 복잡한 함수를 매크로함수 형태로 정의하는데 한계가 있다.
매크로함수에는 있지만 inline함수에는 없는 장점
데이터의 손실발생
ex)
#define SQUARE(x) ((x)*(x))
을 사용할때는 형식에 관계없이 가능
inline int SQUARE(int x) {return x*x;}
int형 기반으로 정의된 함수이기 때문에 실수데이터입력하면 데이터 손실발생
#include<iostream>
//데이터값 손실 발생 하지 않음
template <typename T>
inline T SQUARE(T x)
{
return x*x;
}
int main(void)
{
std::cout<<SQUARE(5.5)<<std::endl;
std::cout<<SQUARE(12)<<std::endl;
return 0;
}
반응형
'IT > Programming' 카테고리의 다른 글
C++ <범위지정연산자 기능> (0) | 2023.04.18 |
---|---|
C++ <namespace> (0) | 2023.04.18 |
C++ <Function Overloading> (0) | 2023.04.18 |
C++ <구구단> (0) | 2023.04.18 |
C++ <헤더> (0) | 2023.04.18 |