Галерея диаграмм связей Значение UEC_constant
В UEC смысл использования констант заключается в том, что UEC_constant — это термин, используемый для обозначения фиксированных значений в Unreal Engine. Он используется для установки параметров или значений атрибутов в программе, чтобы облегчить разработчикам отладку и изменение.
Отредактировано в 2024-02-01 10:22:18Значение UEC_constant
Вопрос 1
В UE4C редактор Rider подскажет мне, что эту переменную можно установить как константу. Почему я должен это сделать? Это увеличивает объем кода. Хотя это повышает надежность, мой последующий код не будет изменять эту переменную.
Ответ 1
Установка переменных в качестве констант (const) является хорошей практикой программирования и помогает сделать ваш код более читабельным и удобным в сопровождении. Хотя это может увеличить размер кода, преимущества обычно перевешивают эти небольшие накладные расходы. Вот несколько причин:
Читабельность кода: использование констант для значений, которые не следует изменять, упрощает понимание вашего кода другими. Это ясно дает понять, что значение должно оставаться постоянным на протяжении всей программы.
Предотвращение неправильных модификаций. В ходе ежедневной разработки могут возникать неправильные модификации. Объявление значений как констант предотвращает случайное изменение, делая ваш код более надежным.
Возможности оптимизации: компилятор может воспользоваться неизменностью констант для выполнения некоторых оптимизаций и повышения эффективности выполнения кода. Это включает в себя постоянное свертывание во время компиляции и т. д.
Улучшенный статический анализ. Константы могут помочь компиляторам и инструментам статического анализа обнаружить потенциальные проблемы. Если переменная не изменяется на протяжении всей программы, компилятор сможет лучше оптимизировать и статический анализ.
Хотя использование констант может немного увеличить размер вашего кода, обычно это считается хорошей практикой программирования и помогает улучшить качество и удобство сопровождения вашего кода. Конечно, конкретные решения также зависят от стандартов кодирования проекта и команды, а также от конкретной ситуации. Если вы уверены, что переменная никогда не будет изменена, объявление ее как константы — хороший выбор.
вопрос 2
двойной UVerticalCurveAlgorithm::Calcuate_GetElevetion_Grade (FVerticalCurveData InVerticalCurveData_01, FVerticalCurveData InVerticalCurveData_02, двойной InMileage)
Точно так же компилятор предложил мне рассмотреть возможность передачи формальных параметров как постоянных ссылок. Считается ли, что этому коду не нужно копировать параметры при каждом вызове?
Ответ 2
Компилятор предлагает использовать постоянную ссылку для передачи формальных параметров, как правило, для повышения производительности и предотвращения ненужного копирования объектов. В сигнатуре вашей функции InVerticalCurveData_01 и InVerticalCurveData_02 являются параметрами типа структуры. Если структура большая, копирование объекта произойдет при передаче в функцию, и использование константных ссылок может избежать этого копирования.
Перепишите объявление функции, чтобы использовать постоянные ссылочные параметры. Попробуйте написать его так:
двойной UVerticalCurveAlgorithm::Calcuate_GetElevetion_Grade (const FVerticalCurveData& InVerticalCurveData_01, const FVerticalCurveData& InVerticalCurveData_02, двойной InMileage) { //Тело функции остается неизменным }
Такое переписывание не только позволяет избежать копирования объекта, но и выражает сообщение: эти два параметра структуры не будут изменены внутри функции.
Следует отметить, что существуют условия для передачи параметров структуры с использованием константных ссылок. Такое переписывание не всегда может быть полезным, если объект структуры небольшой, накладные расходы на копирование объекта невелики или если параметры действительно необходимо изменить внутри функции. Когда дело доходит до оптимизации производительности, лучше всего тестировать и оценивать в каждом конкретном случае.
Для параметров базовых типов данных (таких как double) обычно нет необходимости заменять их постоянными ссылками, поскольку их размер невелик, а издержки производительности при их передаче относительно невелики. Ссылки на константы в основном используются для передачи больших объектов (таких как структуры или классы).