枚举命名规范_UE4 C++基础教程 - 编码规范
為什么要學習編碼規(guī)范?
良好的編碼規(guī)范不僅利于項目維護,也增加了代碼辨識度。使我們在閱讀代碼時能夠更加清晰的理解代碼意圖。維護編碼規(guī)范不是一件機械化的工作,它更像是一門藝術,讓我們在有限的規(guī)范內(nèi)發(fā)揮自己的創(chuàng)造力。除此之外,還有如下幾個原因:
- 軟件生命周期中80%的時間皆需要維護。
- 原開發(fā)者幾乎不會對軟件進行終身維護。
- 代碼規(guī)則可提高軟件可讀性,讓工程師更加快速透徹地理解新代碼。
- 如決定向模組社區(qū)開發(fā)者公開源代碼,則源代碼需要易于理解。
- 交叉編譯器兼容性實際上需要此類規(guī)則。
詳細的編碼規(guī)范可以參考UE4的官方文檔[1],這里我們只摘錄其中有利于初學者閱讀代碼的部分。
UE4命名規(guī)范
Pascal命名法
每個單詞首字母大寫,如 Health或 UPrimitiveComponent 。變量、方法和類的命名應清楚、明了且進行描述。命名的范圍越大,一個良好的描述性命名就越重要。避免過度縮寫。所有變量應逐個聲明,以便對變量的含義提供注釋。其同樣被JavaDocs格式需要。變量前可使用多行或單行注釋,空白行為分組變量可選使用。
類型前綴
類型名稱前有一個額外的大寫字母用于區(qū)分不同的類型和普通的變量名。如 FSkin 是個類型名,Skin 則是 FSkin 的實例。下面是各種前綴以及其含義:
- T 表示模板類
- U 表示類繼承自 UObject
- A 表示類繼承自 AActor
- S 表示類繼承自 SWidget
- I 表示抽象接口類
- E 表示枚舉
- b 表示布爾值
- F 表示其他不滿足上述規(guī)則的類
樣例
float TeaWeight; int32 TeaCount; bool bDoesTeaStink; FName TeaName; FString TeaFriendlyName; UClass* TeaClass; USoundCue* TeaSound; UTexture* TeaTexture;其他
typedef 應該以與其類型相符的字母為前綴,若為結(jié)構(gòu)體,則使用F;若為UObject則使用U,以此類推。此外,使用模板實例化的類不再是模板,也應該加上相應前綴,如:
typedef TArray<FMytype> FArrayOfMyTypes;類型和變量的命名為名詞。
方法名是動詞,用于描述方法的效果或者無副作用的返回值。
返回布爾的函數(shù)應發(fā)起true/false的詢問,如:
IsVisible(); ShouldClearBuffer();若函數(shù)參數(shù)通過引用傳遞,同時該值會寫入函數(shù),建議以“Out”做為函數(shù)參數(shù)命名的前綴(非必需)。此操作將明確表明傳入該參數(shù)的值將被函數(shù)替換。
若In或Out參數(shù)同樣為布爾,以b作為In/Out的前綴,如 bOutResult。
返回值的函數(shù)應描述返回的值.命名應說明函數(shù)將返回的值。此規(guī)則對布爾函數(shù)極為重要。請參考以下兩個范例方法:
// True的意義是什么? bool CheckTea(FTea Tea);// 命名明確說明茶是新鮮的 bool IsTeaFresh(FTea Tea);參考
總結(jié)
以上是生活随笔為你收集整理的枚举命名规范_UE4 C++基础教程 - 编码规范的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国内免费汉语语料库-NLP
- 下一篇: 虚幻引擎5 C++游戏开发教程