언리얼 C++ 타입 & 캐릭터 인코딩

🍋 언리얼 C++ 기본 타입

c++ 최신규약에서 int는 최소 32비트를 보장하도록 규정한다. 특정 플랫폼에서는 64비트로 될 수있으니 UE에서는 int를 명확하게 지정.

float은 8바이트로 지정.

bool은 크기가 명확하지 않음.

  • 헤더에서는 가급적 bool 대신 uint8을 사용하되 Bit Field 오퍼레이터를 사용.

  • uint8 bNetworkStart:1;
    
  • 일반 uint8과 구분하기 위해 b접두사 사용.

  • cpp 로직에서는 bool 자유롭게 사용.

캐릭터 인코딩

1990년대에 유니코드 표준이 만들어졌다. 하지만 그 전부터도 컴퓨터를 사용했기 때문에 문자열 처리의 종류가 파편화.

  • Single byte(ANSI, ASCII): 컴퓨터 초창기
  • Multibyte(EUC-KR, CP949): 컴퓨터 보급기 1990초
  • Unicode(UTF-8, UTF-16): 국제 표준 정착기 1990후반

통일되지 못하고 모두 사용중

  • C++ STL은 ASCII, UTF-8, UTF-16 지원
  • Window 10은 Multibyte 지원.

  • UTF-8 특징
    • 가변적. 메모리 적게 사용.
  • UTF-16 특징
    • 2바이트 고정. 메모리 더 사용.

UE는 UTF-16 포멧을 사용한다.


c++ 소스 코드

UTF-8 혹은 디폴트 Windows 인코딩 입니다. MSVC, Xbox360 컴파일러 와 gcc 모두 UTF-8 인코딩된 소스 파일이면 됩니다. 하이 비트 세트 캐릭터가 포함된 Latin-1 인코딩된 파일, 이를테면 저작권, 상호, 온도 표시같은 심볼은 가급적 소스 코드에 피해 주는 것이 좋은데, 이는 로케일이 다른 시스템에서는 인코딩이 깨지기 때문입니다. 써드파티 소프트웨어에서는 (저작권 공지 등) 불가피한 경우가 몇몇 있어서, MSVC 의 경우 아시아지역 Windows에서 발생할 수 있는 4819 경고를 끕니다.

References

언리얼 캐릭터 인코딩

Leave a comment