C++기반의 인라인함수 정의
inline int SQUARE(int x) { // 컴파일러에 의해 처리, int형만 처리 가능
return x*x;
}
int main(void) {
std::cout << SQUARE(5) << std::endl;
std::cout << SQUARE(12) << std::endl;
return 0;
}
- 매크로 함수는 정의하기 복잡해서 일반 함수처럼 정의 가능하도록 만든 것
C언어 - 매크로 함수
전처리 과정에서 처리
장점
- 일반적인 함수에 비해서 실행속도 빠름
- 자료형에 의존하지 않음 → 자료형 변환이 이루어져 데이터 손실이 발생하지 않음
#define SQUARE(x) ((x)*(x))
SQUARE(5); // 전처리 후 ((5)*(5))
SQUARE(3.12); // 전처리 후 ((3.12)*(3.12))
단점
- 정의하기 어려움
- 복잡한 함수를 매크로의 형태로 정의하는데 한계존재
//메크로함수 예시
#include <iostream>
#define SQUARE(x) ((x)*(x))
int main(void) {
std::cout << SQUARE(5) << std::endl;
return 0;
}
//전처리 과정을 거쳤을 때 main 함수
int main(void) {
std::cout << ((5)*(5)) << std::endl;
return 0;
}
'C++' 카테고리의 다른 글
[C++] namespace (0) | 2022.01.05 |
---|---|
[C++] 함수 오버로딩 & 매개변수 디폴트 값 (Function overloading & default value) (0) | 2022.01.05 |