[C++] Define Macro

2021. 12. 19. 03:23·C++

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를 관리한 부분이 있으니 해당 글을 참고해도 좋을 것 같다.

 

 

[Shader / HLSL] Shader Reflection & Define Macro Resource Hash Table 을 이용한 Resource 동기화

Shader Reflection & Resource Hash Table 동기화 과정 일단 위 방식의 Resource 관리는 해당 Resource의 이름을 통해 관리를 하기 때문에 Shader Resource의 HLSL 내부의 이름과 프로젝트 내에서 선언한 Class의..

kyuhwang.tistory.com

 

'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
'C++' 카테고리의 다른 글
  • [C++] Delegate & Function Pointer
  • [C++] Return Type Operator
  • [C++] std::enable_if / std::is_base_of
KyuHwang
KyuHwang
  • KyuHwang
    DirectX Engine
    KyuHwang
  • 전체
    오늘
    어제
    • 분류 전체보기 (50)
      • C++ (4)
      • CS (0)
      • Graphics (32)
      • DLL (2)
      • Shader (7)
      • Project (4)
      • ETC (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • YouTube
  • 공지사항

  • 인기 글

  • 태그

    mobile format
    std::is_base_of
    C ++
    Directx11
    Define Macro
    shader
    hlsl
    Return Type Operator
    Explicit Linking
    Project
    DLL Interface
    std::enable_if
    Implicit Linking
    rigging chain
    animation retargeting
    Hash Code
    Order Independent Transparency
    Shader Macro
    Shader Resource 관리
    texture block compression
    animation constraint
    Alpha Blending
    DirectX 2D
    dll
    Shader Reflection
    Define Function
    Win API
    nvtt
    RunTime Compile Shader
    bc format
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
KyuHwang
[C++] Define Macro
상단으로

티스토리툴바