心智圖資源庫 UEC_常數的意義
UEC 中,使用常數的意義,UEC_常數是Unreal Engine中用來表示固定值的術語,用於設定程式中的參數或屬性值,方便開發人員進行偵錯和修改。
編輯於2024-02-01 10:22:18Il s'agit d'une carte mentale sur le système de trading de stocks de flux émotionnels des shares A. Le contenu principal comprend: le système de trading de flux émotionnel A-share, comment utiliser le logiciel TongDaxin pour effectuer le trading de flux émotionnel.
J'ai trié le contenu pertinent de l'imagination psychologique ordinaire. L'imagination est le processus psychologique dans lequel le cerveau humain traite et transforme les apparences stockées et forme une nouvelle image. Il s'agit d'une activité cognitive de haut niveau et complexe, et c'est aussi une forme particulière de processus de réflexion. L'imagination utilise principalement des informations graphiques comme objet de traitement, plutôt que des mots et des symboles. J'espère que cela vous sera utile ~
Il s'agit d'une carte mentale sur l'utilisation irrégulière des classiques, et son contenu principal comprend: les personnes, les anneaux, les lois, les objets et les machines. Fournit une référence utile pour résoudre le problème.
Il s'agit d'une carte mentale sur le système de trading de stocks de flux émotionnels des shares A. Le contenu principal comprend: le système de trading de flux émotionnel A-share, comment utiliser le logiciel TongDaxin pour effectuer le trading de flux émotionnel.
J'ai trié le contenu pertinent de l'imagination psychologique ordinaire. L'imagination est le processus psychologique dans lequel le cerveau humain traite et transforme les apparences stockées et forme une nouvelle image. Il s'agit d'une activité cognitive de haut niveau et complexe, et c'est aussi une forme particulière de processus de réflexion. L'imagination utilise principalement des informations graphiques comme objet de traitement, plutôt que des mots et des symboles. J'espère que cela vous sera utile ~
Il s'agit d'une carte mentale sur l'utilisation irrégulière des classiques, et son contenu principal comprend: les personnes, les anneaux, les lois, les objets et les machines. Fournit une référence utile pour résoudre le problème.
UEC_常數的意義
提問1
UE4C 中,Rider編輯器會提示我,這個變數可以設定為常數,會什麼一定要這樣做呢?這增加了程式碼量,雖然提高了健全性,但我後面的程式碼並不會修改這個變數。
回答1
將變數設為常數(const)是一種良好的程式設計實踐,有助於提高程式碼的可讀性和維護性。儘管它可能會增加一些程式碼量,但它帶來的好處通常超過了這個小的開銷。以下是一些原因:
程式碼可讀性: 將常數用於不應該被修改的值,可以讓其他人更容易理解你的程式碼。它傳達了一個明確的訊息,即該值在整個程序中應該保持不變。
防止錯誤修改: 在日常開發中,可能會發生錯誤的修改。將值聲明為常數可以防止意外的修改,從而提高程式碼的健全性。
最佳化機會: 編譯器可以利用常數的不變性進行一些最佳化,從而提高程式碼執行效率。這包括在編譯時進行常量折疊(constant folding)等。
更好的靜態分析: 常數可以幫助編譯器和靜態分析工具偵測潛在的問題。如果某個變數在整個程式中都沒有被修改,編譯器可以更好地進行最佳化和靜態分析。
雖然使用常數可能會稍微增加程式碼量,但它通常被認為是一種良好的程式設計實踐,有助於提高程式碼的品質和可維護性。當然,具體的決策也取決於專案和團隊的編碼規格以及具體情境。如果你確定一個變數確實不會被修改,將其宣告為常數是一個好的選擇。
提問2
double UVerticalCurveAlgorithm::Calcuate_GetElevetion_Grade(FVerticalCurveData InVerticalCurveData_01, FVerticalCurveData InVerticalCurveData_02, double InMileage)
同樣的,編譯器提示我,可以考慮形參是常數引用傳遞。它是考慮,這樣可以不用每次呼叫這段程式碼,程式碼去複製參數嗎?
回答2
編譯器提示使用常數引用傳遞形參通常是為了提高效能,避免不必要的物件複製。在你的函式簽章中,InVerticalCurveData_01 和 InVerticalCurveData_02 是結構體型別的參數,如果結構體比較大,傳遞給函式時會發生物件複製,而使用常數參考可以避免這種複製。
改寫你的函數聲明,使用常數引用形參,可以考慮這樣寫:
double UVerticalCurveAlgorithm::Calcuate_GetElevetion_Grade(const FVerticalCurveData& InVerticalCurveData_01, const FVerticalCurveData& InVerticalCurveData_02, double InMileage) { // 函數體不變 }
這樣的改寫不僅避免了物件複製,也表達了一個訊息:這兩個結構體參數在函數內部不會被修改。
需要注意的是,使用常數引用傳遞結構體參數是有條件的。如果結構體物件較小,物件複製的開銷不大,或者函數內部確實需要修改這些參數,那麼這種改寫可能並不總是有益的。在效能優化方面,最好根據具體的情況進行測試和評估。
對於基本資料型別(如double)的參數,通常不需要將它們改為常數引用,因為它們的大小很小,傳遞時的效能開銷相對較小。常數引用在主要用於大型物件(如結構體或類別)的傳遞。