Define Macro
Function VS Macro
- 단순 반복 작업일 경우 Macro는 치환 방식이므로 Macro를 통해 연산하는 방식이 빠르다.
Macro 함수의 장점
- Macro 함수는 단순 치환만을 해주므로, 인수의 타입을 신경쓰지 않고 처리한다.
- 여러 개의 명령문을 동시에 포함할 수 있다.- 함수 호출 비용이 줄어드므로 속도 향상에 도움이된다.
Macro 함수의 단점
- 디버깅의 어려움.. 정말 까다롭긴하다..
- Macro 함수가 길어지면 길어질수록 괄호를 쓰게 되어 가독성이 매우 떨어지게된다.
Macro 함수 사용시 주의점
- token 단위의 연산에서 사용되는 연산자로는 #과 ##이 있다.
-> # : Macro를 통해 들어온 token을 문자열로 변환시켜준다.
-> ## : Macro를 통해 들어온 token을 앞에 있는 토큰과 결합하여 하나의 토큰으로 만들어준다.
- Macro 내부에서는 Enter 입력이 소용이없다. 그러므로 \ 명령어를 통해 Enter 입력을 일일히 설정해 주어야 한다.
#define CLASS_NAME(ClassName) #ClassName
// ex) CLASS_NAME(Base) -> "Base"
#define CREATE_VARIABLE(Name) int valiable_##Name = 0;
// ex) CREATE_VARIABLE(First) -> int valiable_First = 0;
Macro를 이용하여 Shader Resource를 관리한 부분이 있으니 해당 글을 참고해도 좋을 것 같다.
'C++' 카테고리의 다른 글
[C++] Delegate & Function Pointer (0) | 2022.06.07 |
---|---|
[C++] Return Type Operator (0) | 2021.12.20 |
[C++] std::enable_if / std::is_base_of (0) | 2021.12.19 |