You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Clang-tidy匈牙利命名法前缀,添加下划线分隔符?

解决Clang-tidy匈牙利命名前缀与变量名间下划线分隔问题

要让Clang-tidy生成u32_MyVar这种前缀和变量名间带下划线的匈牙利命名格式,核心是用readability-identifier-naming规则的类型特定命名配置,别用全局前缀设置(那会导致下划线跑到前缀前面)。具体操作如下:

  1. 编辑项目根目录的.clang-tidy配置文件(没有就新建),启用readability-identifier-naming检查,并针对目标类型设置命名格式:
Checks: 'readability-identifier-naming'
CheckOptions:
  # 针对uint32_t类型变量,指定前缀+下划线+驼峰变量名的格式
  - key: readability-identifier-naming.Variable.TypeSpecific
    value: 'uint32_t:u32_{camel_case}'
  # 其他类型同理,比如int32_t
  - key: readability-identifier-naming.Variable.TypeSpecific
    value: 'int32_t:i32_{camel_case}'
  # 如果是类成员变量,配置MemberVariable字段
  - key: readability-identifier-naming.MemberVariable.TypeSpecific
    value: 'uint32_t:u32_{camel_case}'
  1. 配置逻辑说明:

    • TypeSpecific是按变量类型单独设置命名规则的参数,格式为[类型]:[命名模板]
    • {camel_case}表示变量名部分采用驼峰格式,和前面的u32_拼接后,就会生成u32_MyVar这种符合要求的命名
    • 务必删除全局的Prefix配置项(比如readability-identifier-naming.Variable.Prefix),否则会出现_u32MyVar这种错误格式
  2. 验证效果:
    原来不符合规范的代码:

    uint32_t u32MyVar;
    

    经过Clang-tidy格式化后会自动修正为:

    uint32_t u32_MyVar;
    

如果需要适配更多类型,只需要在TypeSpecific里添加对应的类型和命名模板即可。

内容的提问来源于stack exchange,提问作者Slav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:22:19