티스토리 뷰
1. 매크로 함수 : #define 문으로 정의하는 함수로 컴파일 전 단게에서 함수의 호출 부분을 함수의 내용으로 대치하여 실행되는 함수.
- 함수의 호출 없이 호출 위치에 직접 코드 기술.
- 호출에 따르는 오버헤드가 없어 프로그램 수행속도를 높일 수 있음.
- 매크로 함수는 형검사가 어렵고(함수 매개변수로 들어가는 값의 형), 정의환 문장 그대로 대치되기 때문에 사용에 주의해야 함.
#define SQUARE(n) ((n) * (n))
....
....
printf("SQUARE(2) = %d\n", SQUARE(2));
----------------------------------------
호출한 형태 그대로 대치되기 때문에 다른 값이 계산되어 출력
#define ABSOLUTE(n) (n < 0 ? -n : n)
....
....
cout << ABSOLUTE(2 - 5) << endl; // -7 출력
2. inline 함수 : 일반적인 함수와 동일한 방법으로 선언하며 inline 키워드를 사용.
- 매크로 함수와 동일하게 코드가 대치되어 수행되는 방식.
- 매크로 함수와 달리 사용에 별다른 제약이 없어 편리하게 사용할 수 있음.
inline int square(int n)
{
return n * n;
}
inline int absolute(int n)
{
return n < 0 ? -n : n;
}
cout << square("Hello") << endl; // 인자 때문에 오류 발생
cout << absolute(2 - 5) << endl; // 3 출력
'Programming > C / C++' 카테고리의 다른 글
포인터 동적 할당 (0) | 2014.09.17 |
---|---|
정적(static) 멤버변수/멤버함수 & 고정(const) 멤버함수 (0) | 2014.09.04 |
객체 포인터 & 가상함수 & 가상 소멸자 (0) | 2014.09.04 |
[C++]함수 템플릿(Function Template) (0) | 2014.08.25 |
[C++]저장소의 종류 지정자 (0) | 2014.08.25 |
댓글