ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

UE进阶之路-2

UE进阶之路-2 E02 引用与指针 UE/MSVC 工具链踩坑今天的练习与复盘日期2026-08-21学习章节01 C 语言基础摘要今天的练习主题是 C 引用与指针。我用值、引用、指针三种方式修改同一个变量直观验证了谁才能真正改到原变量并总结了 const 修饰指针的判断方法const 在 * 左边管内容在 * 右边管指针。文章还复盘了一个 UE 5.8 与 MSVC 工具链不匹配的编译问题最终通过安装 VS2026 恢复 UE5.8 编译适合正在学习 C 基础和 UE C 开发的读者。今日进度E01 类型与转换已完成博客已发布E02 引用与指针E02-1 三种传递已完成E02-2 地址与解引用、E02-3 const 组合、E02-4 空指针防御待完成弱项清单已换成 Excel 表格记录一、E02 引用与指针核心理解变量是“装值的盒子”地址是门牌号引用是别名指针是保存门牌号的变量。三种传递方式的区别直接看原变量有没有变voidModifyByValue(intin_value){in_value1;// 只改副本}voidModifyByReference(intin_value_ref){in_value_ref1;// 改原变量}voidModifyByPointer(int*in_value_pointer){if(in_value_pointer!nullptr){*in_value_pointer1;// 通过地址改原变量}}运行结果before: 999 after value: 999 after reference: 1000 after pointer: 1001值传递不动原变量引用和指针都能改。指针比引用多了一个“可空、可重定向”的能力所以使用前要判空。二、const 到底修饰谁判断方法不是“右侧优先”而是三步法先找*。const 在*左边修饰指向的内容。const 在*右边修饰指针本身。声明const 位置不能改什么const int* p*左边*pint const* p*左边*pint* const p*右边pconst int* const p两边*p和p口诀const 在*左边管内容在*右边管指针。三、环境踩坑UE 版本与 MSVC 工具链今天还复盘了一个环境问题UE 5.8 编译时在引擎源码里报C7539。原因UE 5.8 的Windows_SDK.json把本机 MSVC14.44.35207列为禁用版本。UnrealBuildTool 回退到最低支持的14.38而 14.38 与 UE 5.8 引擎源码不兼容。解决选择把工程降级到 UE 5.614.38正好是 5.6 官方推荐工具链。修改EngineAssociation清理Intermediate/和Binaries/。Target.cs 设置BuildSettingsVersion.V5和IncludeOrderVersion.Unreal5_6。补充缺失的SpringArmComponent头文件后编译成功。后续进展2026-08-24安装 Visual Studio 2026 后UE5.8 工程恢复编译并成功修改全局BuildConfiguration.xml为VisualStudio2026 14.50.35737。UE5.8 工程 Target.cs 设置BuildSettingsVersion.V7和IncludeOrderVersion.Unreal5_8。补充缺失的SpringArmComponent头文件。编译成功工具链显示Using Visual Studio 14.50.35737 toolchain且无not a preferred version警告。经验换引擎版本前先核对引擎的Windows_SDK.json换版本后必须清理生成目录并重新生成项目文件。同时要检查全局BuildConfiguration.xml它可能写死旧的 VS 和 MSVC 版本导致新安装的工具链不会被使用。收获与反思今天最大的收获是写练习不要只追求“能跑”要看清楚题目在验证什么。E02-1 的核心不是写三个能加一的函数而是证明三种传递对原变量的影响。明日计划完成 E02-2 地址与解引用完成 E02-3 const 组合完成 E02-4 空指针防御
返回列表