[C++] 유틸리티 매크로

Woogle·2022년 11월 15일
0

언리얼 엔진 5

목록 보기
26/59
post-thumbnail

디버그용으로 함수 이름, 라인을 출력하는 유틸리티 매크로를 만들어본다.


📄 프로젝트 헤더

프로젝트 헤더에서 전역으로 사용할 매크로 함수를 설정한다.

#pragma once

#include "CoreMinimal.h"

// 함수 이름, 라인을 확인
#define CALLINFO (FString(__FUNCTION__) + TEXT("(")+FString::FromInt(__LINE__) + TEXT(")")) 

// 위 내용을 출력
#define PRINT_CALLINFO() UE_LOG(LogTemp, Warning, TEXT("%s"), *CALLINFO)

// 가변인자 활용
#define PRINT_LOG(format, ...) UE_LOG(LogTemp, Warning, TEXT("%s %s"), *CALLINFO, *FString::Printf(format, ##__VA_ARGS__))
  • FString(__FUNCTION__) : 함수 이름을 문자열로 표현함
  • FString::FromInt(__LINE__) : 호출된 곳의 줄 번호를 문자열로 가져옴
  • ... : 가변인자
  • __VA_ARGS__ : 가변인자 매크로

📄 매크로 함수 호출

사용할 곳에 프로젝트 헤더를 포함시킨 후 매크로 함수를 호출한다.

#include "MyTPSGameModeBase.h"
#include "MyTPS.h"	// 프로젝트 헤더

AMyTPSGameModeBase::AMyTPSGameModeBase()
{
	UE_LOG(LogTemp, Warning, TEXT("%s"), *CALLINFO);
	PRINT_CALLINFO();
	PRINT_LOG(TEXT("My Log : %s"), TEXT("Hello World!!"));
}

✏️ 실행 결과 (Output Log)

profile
노력하는 게임 개발자

0개의 댓글