UE4 인코딩 사양
주소: unreal CodingStandard
UE4 인코딩 사양
Epic에는 다음과 같은 간단한 코드 작성 기준이 있습니다.
l 코드 생명의 80% 시간은 수리에 있다
l 전체 과정 중 원작자만 유지보수하는 소프트웨어가 없다
l 인코딩 규범은 소프트웨어의 가독성을 제공할 수 있고 초보자는 코드를 신속하게 철저하게 이해할 수 있다.새로운 엔지니어가 와서 새로운 공사 수정 코드를 세울 것이다.
l 만약에 지역사회 개발자에게 원본 코드를 방출한다면 코드가 쉽게 이해되기를 바란다.
l 교차 번역을 만족시켜야 한다.
명명 규칙
l 밑줄 없이 대문자
l 첫 번째 자모는 변수 유형이다.
모듈 접두어는 T
UObject 접두어를 U로 상속
Aactor 접두사 상속 A
SWidget 접두어를 S로 상속
상속 추상 인터페이스 접두사 I
다른 대부분의 접두사는 F이고, 일부 하위 클래스는 다른 자모를 사용한다.
l 유형과 변수는 명사
l 방법 행위의 명칭은 동사, 묘사 방법의 작용, 또는 되돌아오는 값이다.
변수와 방법, 유형명은 명확해야 하며 과도한 줄임말은 피해야 한다.
모든 변수는 한 번에 하나만 성명할 수 있고 주석은 정상적으로 사용할 수 있다.javaDocs 유형이 필요합니다.너는 여러 줄이나 한 줄의 주석으로 주석할 수 있다.
함수는 bool형을 되돌려야 합니다. bool 변수의 접두사는 b입니다.
되돌아오는 값 함수가 없습니다. 동사 뒤에 대상을 추가해야 합니다.명칭은 불명확한 기능의 글자를 피한다
기본 C++ 객체 유형
bool은 Bool을 사용하지 마세요.
TCHAR, CHAR 불필요
uint8
int8
uint16
int16
uint32
int32
Uint64
Int64
Float, 단일 정밀도 부동 소수점
Double, 이중 정밀도 부동 소수점 수
포인터가 있는 정형 PTRINT
메모
주석은 소통이고, 소통은 매우 관건적이다.주석을 머릿속에 새기다.(Kernighan & Pike The Practice of Programming )
UE4는 JavaDoc를 사용하여 코드 주석을 자동으로 해석하고 문서를 컴파일합니다.따라서 주석 형식에 주의해야 한다.
C++11 새로운 기능 사용
지원할 수 있는 것은 현재 주로 auto, for 순환, lambda 표현이 있습니다.때때로 우리는 단지 매크로 정의로 이러한 특성을 접었을 뿐이다.
l Auto
컴파일하는 동안 변수 형식을 귀속시키는 데 auto를 사용합니다.마우스를 vs 변수에 걸면 auto 변수의 실제 유형을 알려 줍니다.
l For 루프
코드가 더욱 간결하고 유지보수하기 쉽다.
l Lambda 표현 익명 함수
Lambda는 사용할 수 있지만, 현재 우리는 매우 조심스럽게 사용하고 있다.
타사 코드
인코딩 형식
{} 다른 행이 필요합니다.
모든 사용을 괄호로 묶는 If-else여러 줄은 else-if를 한 줄 위에 놓을 수 있습니다.
Switch,default가 있어야 합니다.
네임스페이스
l 자신의 명명 공간을 사용할 때 이름을 바꾸지 않도록 주의해야 한다. 특히 제3자 라이브러리와 이름을 바꾸지 않도록 주의해야 한다.
l 전역적으로 using을 사용하지 않으며 cpp에서도 사용하지 않습니다.
l 명명 공간에서 명명 공간을 사용하거나 함수에서 명명 공간을 사용하는 것은 문제없습니다.
l 명명 공간을 사용하면 일치성을 확인해야 한다.
l 전방향 성명 형식은 그들의 단독 명칭 공간에서 진행해야 한다.
l 대량의 클래스나 유형이 하나의 명칭 공간에서 성명된다면 전역적으로 명확한 지출 명칭 공간을 사용해야 한다
l Using, 별칭은 사용하지 않는 것이 좋습니다.
l 매거 형식은 전체 국면이 보이지 않도록 명명 공간에서 설명합니다.
물리적 독립
모든 컴파일러는 #pragma once를 지원합니다.
헤더 파일을 직접 사용하려면 간접적으로 사용하지 마십시오.
헤더 파일의 사전 컴파일된 헤더 설정은 걱정하지 마십시오. Unreal Build는 당신보다 더 잘합니다.
일반 형식
l 변수는 가장 가까운 곳에서 정의됩니다.
l 가능한 한 많은 방법을 분할한다.
l 함수 성명이나 호출, 함수 이름 전에 빈칸을 띄우지 마십시오.
에 있다.Gcc 컴파일이 필요하기 때문에 h와 cpp 파일의 끝에 공백을 추가합니다.
l 부동점float 스텔스를 int로 변환하지 마십시오. 컴파일러가 컴파일할 수 있는 것이 아니기 때문입니다.appTrunc()를 사용하여 변환합니다.
l 인터페이스가 아닙니다.private 형식으로 데이터를 보호해야 합니다.
l 인터페이스 클래스는 변수를 쓰지 마십시오.인터페이스 클래스에서 비순수 허함수, 또는 비허함수, 정적 함수를 허용합니다.
l const를 많이 사용합니다.
l 여러 표현을 분할하여 코드를 쉽게 이해한다.중간 변수를 사용하여 복잡한 표현을 간단하게 하다.
const bool bIsLegalWindow = Blah->BlahP->WindowExists->Etc && Stuff;
const bool bIsPlayerDead = bPlayerExists && bGameStarted && bPlayerStillHasPawn && IsTuesday();
if (bIsLegalWindow && !bIsPlayerDead)
{
DoSomething();
}
l 허함수 오버라이드 사용하기
l 바늘의 * 번호는 대상에 가까이 놓아 특정한 유형의 바늘류 대상을 찾기 편리하다.
----------------------
문제가 있으면 언제든지 연락 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
주석을 달다첫 번째 단계는 주석을 전혀 쓰지 않고 이 단계는 코드 논리의 실현에 있어 많은 시간을 들여 디버깅을 하고 코드를 수정하기 때문에 주석에 신경 쓸 겨를이 없다.시간이 지나자 전에 쓴 구리고 긴 코드가 전혀 보이지 않...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.