[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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바