跳转至

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 或归档解析逻辑。

查看固定 commit 源码 · 返回证据索引