ev-mold-enum-class-filetype-001¶
| 字段 | 值 |
|---|---|
| 项目 | rui314/mold |
| 固定 commit | 27162691b71a |
| 路径 | src/filetype.cc |
| 行段 | L174-L182 |
| 特性 | 强类型枚举(enum class) |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-27 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用 enum class 枚举值做 switch 分支并比较文件类型
为什么典型¶
文件类型名字被限定在 FileType 作用域内,switch 覆盖所有分支且不会与整数混淆。
摘录¶
case FileType::ELF_OBJ:
case FileType::ELF_DSO:
case FileType::GCC_LTO_OBJ:
return get_elf_type(mf->data);
case FileType::AR:
for (MappedFile *child : read_fat_archive_members(ctx, mf))
if (FileType ty = get_file_type(ctx, child);
ty == FileType::ELF_OBJ || ty == FileType::GCC_LTO_OBJ)
return get_elf_type(child->data);
备注¶
生产路径;链接器根据机器类型选择 ELF 或归档解析逻辑。