add comment
parent
78325c7c8a
commit
107610077f
|
|
@ -1,3 +1,38 @@
|
|||
// 언리얼 C++ 기본 타입과 문자열
|
||||
|
||||
// 언리얼은 c++ 기본타입을 사용하지않고 자체적으로 만든 통합된 타입을 사용한다.
|
||||
// why? -> 플랫폼 파편화로 인해 다양한 플랫폼에서 동일하게 동작하기 위함
|
||||
// 플랫폼 파편화 ? -> 과거부터 현재까지 다양한 기기에서 C++를 지원하는데 여기서 데이터타입에 대한 정보가 각자 명확하지 않아 플랫폼마다 대응이 필요했고 이를 플랫폼 파편화라고 한다.
|
||||
|
||||
// -> 데이터 정보가 명확해야 한다.
|
||||
// -> 게임제작은 단일 하드웨이 기기에서 최대 퍼포먼스를 뽑아내야 하기 때문에
|
||||
// -> 네트워크 상에서 데이터 정보가 명확해야 효율적이며 안정적임
|
||||
// -> 그럼에도 int는 많은 플랫폼에서 데이터 정보가 다르기 때문에 int32를 규약하고 있고 언리얼도 이 표준에 맞춰서 사용하기를 권장하고있다.
|
||||
|
||||
// TCHAR
|
||||
// -> 언리얼에서는 별도의 TCHAR 타입의 문자열을 사용하도록 지정하고있다.
|
||||
// why? -> 문자열의 경우 유니코드 및 ANSI 문자 모두를 지원하기 때문이다. 따라서 'TCHAR' 를 사용하면 다양한 문자 유형과 호환성 문제를 최소화 할 수 있다.
|
||||
|
||||
// bool -> uint8
|
||||
// -> 언리얼에서 클래스 멤버로 boolean 타입을 선언시 bool 타입또한 플랫폼마다 데이터 타입이 애매모호 하기 때문에 uint8:1 형태로 1byte씩 잘라서 사용하기를 권장하고 있다. 이렇게 사용하면 동일하게 1byte의 데이터로 사용
|
||||
|
||||
// 언리얼 문자열 처리 방식
|
||||
// TCHAR <-> FString <-> FCString
|
||||
// TCHAR에서 FString으로 변환을 할 때 대입을 통해서 쉽게 가능하고, FString은 언리얼에서 제공하는 TArray 형태의 동적배열로 변환하게 된다.
|
||||
// FString은 Helper Class지만 실제론 문자열에 대한 다양한 처리를 담당하는건 FCString 통해서 하게 된다.
|
||||
|
||||
// FString
|
||||
// 문자열 처리를 할수있는 다양한 API 기능을 제공하는 Helper Class 라고 할 수 있음
|
||||
|
||||
// FCString
|
||||
// c라이브러리 언어의 기능들을 사용하여 문자열을 처리하는 역할을 한다.
|
||||
|
||||
// FName
|
||||
// 경량화된 문자열 자료형
|
||||
// 언리얼에선 자체적으로 FNamePool 이라는 해시테이블 구조(Key(해쉬값):Value(문자열)) 의 문자열 풀이 사용된다. 이미 풀에 등록된 문자열이 있다면 빠르게 Key값을 검색해 찾을 수 있다.
|
||||
// 대소문자를 구별하지 않으며 이미 등록된 문자열은 수정이 불가능하다.
|
||||
// 따라서 프로젝트에 사용될 문자열이 변경이 불필요 할 경우 FName을 통해서 사용할 이유가 된다. 이유는 속도적인 측면에서 이득이 있기 때문에
|
||||
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#include "Components/EditableTextBox.h"
|
||||
|
|
@ -80,3 +115,5 @@ void UMyGameInstance::Init()
|
|||
// 따라서 이렇게 계속 생성하는 것 보다 한번만 생성 후 참조해서 쓰는게 좋을것 같다.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue