반응형
인라인함수: 프로그램 코드라인 안으로 들어가버린 함수
<매크로 함수의 장점>
: 일반적인 함수에 비해서 실행속도의 이점
매크로 함수의 단점: 복잡한 함수를 매크로의 형태로 정의하는데 한계가 있다.
함수의 인라인화: 함수의 몸체부분이 함수 호출 문장을 완전히 대체
<c++ 기반의 인라인 함수 정의>
#include <iostream>
inline int SQUARE(int x) //키워드 inline을 통한 인라인 함수
{
return x * x;
}
int main(void)
{
std::cout << SQUARE(5) << std::endl;
std::cout << SQUARE(12) << std::endl;
return 0;
}
- 매크로를 이용한 함수의 인라인화: 전처리기에 의해서 처리됨
- 키워드 inline을 이용한 함수의 인라인화: 컴파일러에 의해 처리 됨, 함수의 인라인화가 오히려 성능에 해가 될 경우, 이 키워드를 무시. 필요한 경우 일부 함수를 임의로 인라인 처리
<매크로함수에는 있지만 인라인 함수에는 없는 장점>
인라인 함수와 달리 매크로 함수는 데이터 손실이 없다.
템플릿을 이용하면 자료형에 의존적이지 않은 함수를 만들 수 있다.
<이름공간의 기본 원리>
이름 공간을 사용하면 이름충돌
#include <iostream>
namespace BestComImpl {
void SimpleFunc(void) {
std::cout << "BestCome이 정의한 함수" << std::endl;
}
}
namespace ProgComImpl {
void SimpleFunc(void)
{
std::cout << "Progcom이 정의한 함수" << std::endl;
}
}
int main(void)
{
BestComImpl::SimpleFunc(); //SimpleFunc함수 호출
ProgComImpl::SimpleFunc();
return 0;
}
연산자 :: ->범위지정연산자
이름공간을 지정할 때 사용하는 연산자