#define은 C와 C++에서 매크로를 정의하는 데 사용하는 전처리기 지시문입니다.
매크로는 코드에서 반복적으로 사용되는 텍스트를 치환하는데 사용되며, 주로 상수나 간단한 함수처럼 사용됩니다.
매크로는 컴파일러가 소스 코드를 컴파일하기 전에 텍스트 치환을 수행하므로 코드의 가독성과 유지보수성을 높이는 데 도움을 줍니다.
#define의 역할과 사용 방법
#define은 주로 다음과 같은 용도로 사용됩니다:
- 상수 정의:
- 상수를 정의하여 코드에서 직접 숫자나 문자열을 사용하지 않도록 합니다.
- 매크로 함수 정의:
- 반복되는 코드 블록을 매크로로 정의하여 코드 중복을 줄이고 가독성을 높입니다.
- 조건부 컴파일:
- 특정 조건에 따라 코드를 컴파일할지 여부를 결정할 수 있습니다.
예제
상수정의
#define PI 3.14159
- PI라는 이름을 3.14159로 정의합니다. 이제 코드에서 PI를 사용할 때마다 3.14159로 치환됩니다.
매크로 함수 정의
#define SQUARE(x) ((x) * (x))
- SQUARE라는 매크로 함수는 x의 제곱을 계산합니다. SQUARE(5)는 컴파일 전에 ((5) * (5))로 치환됩니다.
define을 언리얼에서는 어떻게?
ex) 델리게이트
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type) FUNC_DECLARE_DELEGATE(DelegateName, void, Param1Type)
위 매크로는 DECLARE_DELEGATE_OneParam라는 이름으로 정의됩니다.
이 매크로는 두 개의 매개변수 DelegateName과 Param1Type을 받습니다.
매크로가 정의된 방식에 따라, 코드에서 DECLARE_DELEGATE_OneParam을 사용할 때마다 FUNC_DECLARE_DELEGATE(DelegateName, void, Param1Type)로 치환됩니다.
주석과 함께보는 설명
// 매크로 정의: DECLARE_DELEGATE_OneParam는 두 개의 매개변수를 받습니다.
// 첫 번째 매개변수는 DelegateName, 두 번째 매개변수는 Param1Type입니다.
// 이 매크로는 FUNC_DECLARE_DELEGATE(DelegateName, void, Param1Type)로 치환됩니다.
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type) FUNC_DECLARE_DELEGATE(DelegateName, void, Param1Type)
// 예제 사용: MyDelegate라는 이름의 델리게이트를 정의하고, 매개변수 타입은 int입니다.
DECLARE_DELEGATE_OneParam(MyDelegate, int)
// 위 코드는 다음과 같이 치환됩니다:
FUNC_DECLARE_DELEGATE(MyDelegate, void, int)
'개발이야기 > 언리얼 c++' 카테고리의 다른 글
언리얼 C++ : Ensure와 EnsureMsgf란? (0) | 2024.05.27 |
---|---|
언리얼 엔진의 델리게이트 기초와 심층분석 (0) | 2024.05.27 |
언리얼 C++ : typedef와 typedef struct는 왜 사용하는 걸까? (1) | 2024.05.24 |
언리얼C++: MINIMAL_WINDOWS_API란? (0) | 2024.05.24 |
언리얼 C++: 인라인 함수 (FORCEINLINE) (0) | 2024.05.24 |